【问题标题】:How do I refer the shape's data from sub-shape of Visio custom shape如何从 Visio 自定义形状的子形状中引用形状的数据
【发布时间】:2021-09-27 07:28:29
【问题描述】:

我正在尝试在 Visio 中设计自定义形状。

我的结构是这样的: 在“编辑母版”页面中,我有一些矩形,我将形状命名为“MyDay”,因此这是它在主资源管理器和编辑窗口中的文档名称。

我的问题是,我找不到从我的一个子形状中引用形状日期本身 (like =MyDay!Name() or =MyDay!User.MyUserField) 的方法。

如果我添加对 ThePage 的引用并将母版放在页面上 - 我将该属性添加到页面本身 - 再次 - 没有从其子形状中引用主形状。

我知道 ShapeSheet 公式中没有“父”属性(仅在 VBA 上),但我真的想找到一种方法来使用字段或公式来引用它,而无需编写和运行 VBA 代码。

非常感谢任何帮助!

【问题讨论】:

    标签: visio shapesheet


    【解决方案1】:

    Paul 是正确的,但我要补充一点,通常情况下,Master 只包含一个形状,但它可以是包含其他形状的组形状。因此,子形状中的公式可以使用 Sheet.n 语法引用该组中的任何形状,包括顶级组形状。当主控形状的实例被拖放到页面上时,Visio 会自动将 n ID 更新为页面中的实际形状 ID。形状 ID 在其所属的形状集合中必须是唯一的,因此需要为顶级组形状分配一个新的唯一 ID,但子形状不需要,因为它们已经具有在其中唯一的 ID它们所属的形状集合。

    【讨论】:

      【解决方案2】:

      您需要找到父形状的图纸参考编号(选择它,然后选择功能区 Developer -> Shape Name -> Shape)。这将类似于 Sheet.6。

      在您的公式中使用此参考,例如

      Sheet.6!User.MyUserField
      

      【讨论】:

      • 亲爱的@Paul,感谢您调查我的问题。我对你的方法的问题是它必须手动完成,所以我无法(在主设计中)从子形状中引用主要形状,因此它将始终保持连接,除非在我的每一个强烈的形状我将重新寻找其新的“父”形状名称。不是吗?
      • 不,如果您正在创建主控形状,那么您在该主控形状中进行编辑,当您在图表中使用该形状时,参考会自动更新。刚刚看到大卫的回复。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多