如何在Visio中使用VBA设置自定义单元格属性值?

时间:2013-01-18 20:54:39

标签: vba visio 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

这是我尝试的几种不同方法之一,似乎没有任何效果。有人可以为我清楚这一点吗?

1 个答案:

答案 0 :(得分: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"""

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

希望这会对你有所帮助。

此致