VBA在Visio中计算形状

时间:2015-07-14 09:19:25

标签: vba visio

我想计算我的纸张上有多少种形状,并将其保存到标签上。

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不是很熟悉

1 个答案:

答案 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