我想计算我的纸张上有多少种形状,并将其保存到标签上。
Sub Counter()
Dim shp As Visio.Shape
Dim i As Integer
For Each shp In ActivePage.Shapes
If shp.Master.Name Like "DV-ED.*" Then
i = i + 1
End If
ActivePage.Shapes("SheetED").Characters.Text = CStr(i)
Next shp
End Sub
问题是,在该类型的最后一个形状之后我得到一个错误
“运行时错误'91':对象变量或未设置块”
我对VBA不是很熟悉
答案 0 :(得分:1)
在访问对象Name
之类的属性之前,请确保已设置对象:
Sub Counter()
Dim shp As Visio.Shape
Dim i As Integer
For Each shp In ActivePage.Shapes
If shp.Master<>Nothing Then
If shp.Master.Name Like "DV-ED.*" Then
i = i + 1
End If
ActivePage.Shapes("SheetED").Characters.Text = CStr(i)
End If
Next shp
End Sub