2013-01-18 23 views
0

我对VBA相当陌生。如何在Visio中使用VBA设置自定义单元属性值?

我有一个具有数百个形状的绘图,并且它们都应用了相同的数据集。在这种情况下,假设我想将行“Prop.Row_5”中的值更改为0001。

目前我有:

Sub Macro1() 
    Dim vsoPage As Visio.Page, vsoShape As Visio.Shape 
    Dim vsoStrng As String 

    For Each vsoPage In ThisDocument.Pages 
     For Each vsoShape In vsoPage.Shapes 
      vsoShape.CellsSRC(visSectionProp, 4, visCustPropsValue).FormulaU = "0001" 

     Next 
    Next 


End Sub 

这是几种不同的方法我都试过了,似乎没有任何工作之一。有人可以为我清楚吗?

+0

你从哪里运行代码?您是否针对特定的文档,因为“ThisDocument”将引用托管代码的文档。你有没有检查你是否真的碰到了CellSRC系列?添加一个断点(点击左边空白处)......当你点击断点时,形状引用是你期望的那个吗? – JohnGoldsmith

回答

1

您的代码应该工作,如果该属性是一个数字,或者你可以把它没有逗号,

Dim vsoPage As Page 
Dim vsoShape As Shape 

For Each vsoPage In ThisDocument.Pages 
    For Each vsoShape In vsoPage.Shapes 
     vsoShape.CellsSRC(visSectionProp, intRowNum, _ 
      visCustPropsValue).FormulaU = 1 
    Next 
Next 

但是,如果属性是一个字符串,则必须使用三个逗号,像

 vsoShape.CellsSRC(visSectionProp, intRowNum, _ 
      visCustPropsValue).FormulaU = """0001""" 

这是因为公式本身是一个字符串,只有在字符串中包含“”字符时才会计算字符串。否则,如果查找名称为您输入的字符串的变量,函数或单元格。

希望这可以帮助你。

Regards,

相关问题