2014-04-25 3 views
0

저는 VBA에서 꽤 녹슬었고, 누군가가 올바른 방향으로 나를 가르켜 주거나 나를 도울 수 있기를 바랬습니다. 내가하려는 것은 시트에있는 각 활성 컨테이너를 순환하는 매크로를 실행 한 다음 해당 컨테이너 내의 셰이프 수를 계산하는 것입니다. 그런 다음 셰이프 개수가있는 컨테이너의 셰이프 데이터 필드를 업데이트하고 싶습니다. 내가 할VISIO는 컨테이너의 모양을 계산합니다.

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

오류는 사용자가 vsoPage을 선언했지만 문서의 어느 페이지에도 지정하지 않았기 때문에 발생합니다.

그것을 초기화 이와 같은 라인을 추가하고 오류가 도망 간다 :

Set vsoPage = ActivePage