0

我有一张包含数百种形状的绘图,它们都应用了相同的数据集。在这种情况下,假设我想将每个形状的“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

这是我尝试过的几种不同方法之一,似乎没有任何效果。有人可以帮我解决这个问题吗?

4

1 回答 1

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

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

希望这对您有所帮助。

问候,

于 2013-07-04T10:19:16.430 回答