我有一个包含数百种形状的图形,它们都具有应用于它们的相同数据集。在这种情况下,假设我想将每个形状的行“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 :(得分: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"""
这是因为公式本身是一个字符串,只有当字符串中包含“”字符时才会计算为字符串。否则,如果查找名为您输入的字符串的变量,函数或单元格。
希望这会对你有所帮助。
此致