2017-07-26 39 views
0

我有一个带有形状和相关形状数据的visio文档。我试图从这些形状中提取数据。 一些形状数据字段是公式(它在Visio中显示正确的值),但是在获取这些值时,我不确定如何将该值作为字符串返回。VBA无法从单元格返回值(Visio)

这里是呼叫:

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) & """" 

如下片段

解确保不管是在返回所得到的值/串形状片小区。 .ResultStr(Visio.VisUnitCodes.visNoCast)

添加附加到开始和结束的报价给我的结果(值/串),就好像它是用我原来的`.FormulaU”返回,但将计算公式和返回值,而不是实际公式。

采用.ResultU.Result将一切返回0,是不是一个值。因此字符串,因为它们为0

回答

1

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

+0

谢谢你,约翰,这工作完美!出于好奇,你使用VB/VBA/VBscript的资源。我很新,很难找到好的资源,尤其是那些在Visio中提到VBA的资源。我知道Visio这个人确实是除了micorosoft之外唯一全面的资源,但是microsoft缺乏像我们在stackoverflow上找到的任何“社区/评论”......再次感谢! – Cjust689

+0

我主要使用Visio中的VBA宏录制器,这是迄今为止学习所有这些事情的最简单方法。次好的是继续搜索堆栈溢出并在找不到答案时提​​出问题。 Visio Automation的MSDN文档很差,但它至少有时会告诉你一些有用的信息。您可能想要获取Visio Developer的生存指南,这可能会有所帮助。我不知道它是否是最新的,但2003年的版本仍然存在。 –

0

在MS Visio中恢复不会工作没有.value的!它有。结果 您可以在此字段中使用哪种数据类型?

+0

谢谢,我不知道。价值是不适用的。我结束了使用以下内容:[avarFormulaArray](https://msdn.microsoft.com/pt-br/subscriptions/ms427197.aspx)根据规范它抓住单元格的公式。我可能会被困在我的设计中。没有上下文可以在我的宏中找到价值。我已经围绕这个问题解决了一些妥协。 – Cjust689