VBA 无法 return 单元格中的值 (Visio)

VBA Can't return value from cell (Visio)

我有一个包含形状和相关形状数据的 visio 文档。我试图从这些形状中提取数据。 一些形状数据字段是公式(在 Visio 中显示正确的值)但是在获取这些值时我不确定如何 return 将值作为字符串。

调用如下:

avarFormulaArray(iCell) = 
shp.CellsSRC(Visio.VisSectionIndices.visSectionProp, iRow, 
Visio.VisCellIndices.visCustPropsValue).FormulaU

这些简单的答案是使用 .Result 而不是 .FormulaU 但这不会起作用,因为它不是正确的类型 (FormulaArray),它必须是一个公式。目前不确定如何解决这个问题。 感谢任何帮助。

使用@JonFournier 的建议解决方案

"""" & shp.CellsSRC(Visio.VisSectionIndices.visSectionProp, iRow, Visio.VisCellIndices.visCustPropsValue).ResultStr(Visio.VisUnitCodes.visNoCast) & """"

以下代码片段确保无论形状 sheet 单元格中有什么,结果 value/string 都是 returned。 .ResultStr(Visio.VisUnitCodes.visNoCast)

添加附加到开头和结尾的引号给我结果 (value/string),就好像它是 returned 使用我原来的 `.FormulaU' 但会计算公式和return 值而不是实际公式。

使用 .ResultU.Result 将为所有不是值的内容 return 0,因此字符串将无法工作,因为它们被 return 编辑为 0。

在 MS Visio 中没有 .Value !它有 .Result 您可以在此字段中使用哪种数据类型?

使用 .Result(visUnitCode) 或 .ResultIU() 从单元格中获取值。

关于 Visio 的文献VBA:

Developing Microsoft Visio Solutions (Pro-Documentation)
Chapter No.2 "Understanding the Microsoft Visio Object Model from book Microsoft Visio 2010 Business Process Diagramming and Validation by David John Parker
Chapter No. 3 Understanding the ShapeSheet™ from book Microsoft Visio 2013 Business Process Diagramming and Validation by David John Parker

视频:

Visio, a flyby for developers (Part 2) by John Goldsmith / John Goldsmith on Whosebug