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
我有一个包含形状和相关形状数据的 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