0

当我尝试使用 .SetFormulas 在不同页面上引用连接器形状时,我不断收到 #Name?错误。Visio 2010 和 2016 都会出现该错误。下面的代码适用于圆形和分组形状,但不适用于我的连接器。

Dim formArray as String() = BuildFormulaArray(PreviousPageShapeIDs)
Dim theStream as Short() = StreamBuilder(CurrentShapeIDs, CustPropSection, Row, Cell)
Dim objArray as Object() = formArray.ConverToObject 'convenience function to convert each item to an object 

vPage.SetFormulas(theStream, objArray, VisGetSetArgs.visSetBlasGuards)

但是,下面的代码适用于连接器

For i = 0 to formArray.GetUpperBounds(0)
Dim streamInd as Integer = 4*i
vPage.Shapes(theStream(streamInd)).CellsSRC(theStream(streamInd+1),theStream(streamInd+2),theStream(streamInd+3)).FormulaForce = formArray(i)
Next

我的公式是使用 Pages[ PageName ]!Sheet 引用单元格。形状标识单元名称方法。

我知道我可以通过使用 CellsSRC 或在公式中使用形状名称来完成这项工作,但出于速度原因,我宁愿坚持使用 SetFormulas 和形状 ID。关于为什么 Visio 行为不一致的任何想法?

4

0 回答 0