【发布时间】:2015-11-27 09:53:12
【问题描述】:
Visio Page 对象的 SetFormulas 和 GetResults 方法需要一个包含 ShapeID、Section、Row、Column 的数组,以便批量读取/写入 shapesheet。
但是,我发现在具有大量形状的绘图中,在添加和删除形状后,Visio 的形状 ID 超过了 32768 的短整数限制。似乎 Visio 在名为 ID16 的形状上保留了一个短整数 ID 属性,但通过将 ID16 放入 ShapeID,Section,Row,Column 数组似乎不起作用,并引发“意外的文件结尾”错误。
是否可以在形状 ID 超过短整数限制的图形上以某种方式使用 SetFormulas 和 GetResults 方法?或者有没有办法在绘图中“重新堆叠”形状 ID,只要页面中的形状少于 32768 个,那么所有 ID 都将低于限制?我知道将所有形状复制到新绘图中会花费一些时间,但是在从页面中添加/删除形状后,问题可能会很快再次出现,我的软件经常这样做。
我能想到的唯一其他选择是捕获形状 ID 超过短整数限制的情况,并恢复为逐个单元格和逐个形状执行操作的例程,而不是在单个批次中。
【问题讨论】: