我在Visio 2010模板中有一些已定义的形状,并且希望根据特定形状数据字段的值设置图层。如果可能的话,我想在形状表中做到这一点,因为我的工作场所对VisualBasic的使用非常有限。
我可以进行必要的查找以查找特定值,但需要将其转换为页面图层列表中的正确索引。
基本上,我需要获取特定图层的当前索引。例如,我知道图层的名称是"删除"并需要ThePage!Layers中的索引,以便我可以相应地设置LayerMember。索引在页面之间会发生变化,因此我需要在页面上删除形状后在页面上下文中进行此查找。
如何使用图层名称作为查找索引查找ThePage!图层中条目的索引。像ThePage!Layers.Index ["删除"]这样的语法不起作用,我在Microsoft文档中找不到任何其他信息。
答案 0 :(得分:0)
有可能!我的方法
我添加到我的形状3个部分:用户定义的单元格,形状数据,图层成员。
在 Shape Data 部分中,我创建了一行,其中包含图层名称选择器
用户定义的单元格部分包含两行:
1. User.L_List 存储页面上所有图层的列表。我准备此列表使用 MS Excel
在 A栏中,我填写行号,就像在此图片中一样
在单元格B1 中,我放置公式 - 连接(“ThePage!Layers.Name”; A1)
在单元格B2中,我放置公式 - 连接(B1;“& Listsep()& ThePage!Layers.Name [”; A2;“]”)
并根据需要拉下一些行。
在 B列中选择底部单元格并复制该值
将此值粘贴到 MS Visio的单元格 User.L_List 中
2.下一个单元格包含公式 SETF(GetRef(LayerMember),LOOKUP(Prop.LayerName,User.L_List)),
根据 Prop.LayerName 单元格