2010-12-01 2 views
0

Я пытаюсь пропустить фигуры gluedshapes, и она повторяется один раз, а затем разрывает, выдавая «неверную ошибку параметра» на Me.Application.ActivePage.Shapes (i) .GluedShapes (visGluedShapesAll2D, "") во время второй итерации. Конечно, если он работает правильно на первой итерации, он должен корректно работать на втором и третьем и т.д. ...VBA Для каждой петли для gluedshapes формы в Visio

В этом коде я просматриваю все фигуры, ища определенный тип, затем перебираю массив GluedShapes и проверяю если идентификатор равен id, возвращаемому на элемент массива.

Код выглядит следующим образом:

For i = 1 To Me.Application.ActivePage.Shapes.Count 
     If InStr(Me.Application.ActivePage.Shapes(i).Name, "Flow Connector") > 0 Then 
      For Each j In Me.Application.ActivePage.Shapes(i).GluedShapes(visGluedShapesAll2D, "") 
       If s.ID = j Then 
       End If 
      Next j 
     End If 
    Next i 

Спасибо, любая помощь будет оценена.

ответ

0

Там нет необходимости в цикле через все формы я мог бы просто использовать

Dim s As Shape 
Dim id As Variant 

Set s = Application.ActiveWindow.Page.Shapes.ItemFromID(Selection.PrimaryItem.id) 

id = s.GluedShapes(visGluedShapesAll1D, "")(0) 

Где s это Текущая форма и выше дает мне идентификатор первой формы моя текущая форма приклеивается как такой формы может подключаться только к одной родительской форме.

Смежные вопросы