VISIO计算容器中的形状

时间:2014-04-25 13:31:53

标签: vba shape visio

我对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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

错误是因为您已声明vsoPage,但您从未将其分配给文档中的任何页面。

添加这样的行来初始化它并且错误消失:

Set vsoPage = ActivePage