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

问题描述 投票:0回答:1

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

这是我尝试过的几种不同方法之一,似乎没什么用。有人可以为我清楚这一点吗?

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

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

希望这对你有所帮助。

问候,

© www.soinside.com 2019 - 2024. All rights reserved.