我对VBA非常生疏,我希望有人能指出我正确的方向,或者帮助我。我试图做的是运行一个宏,它将遍历我的工作表上的每个活动容器,然后计算该容器中的形状数。然后,我想更新具有形状数量的容器的形状数据中的字段。
这是我到目前为止所做的:
Public Sub countContainers()
Dim vsoPage As Visio.Page
Dim vsoDocument As Visio.Document
Dim vsoDocuments As Visio.Documents
Dim vsoPages As Visio.Pages
Dim vsoContainerShape As Visio.Shape
Dim containerId As Variant
For Each containerId In vsoPage.GetContainers(visContainerIncludeNested)
Set vsoContainerShape = vsoPage.Shapes.ItemFromID(containerId)
Debug.Print vsoContainerShape.NameU
Next
End Sub
我得到的错误是Object Variable or With Block variable not set
有什么想法吗?
答案 0 :(得分:0)
错误是因为您已声明vsoPage
,但您从未将其分配给文档中的任何页面。
添加这样的行来初始化它并且错误消失:
Set vsoPage = ActivePage