【问题标题】:VBA For each loop for gluedshapes of a shape in VisioVBA对于Visio中形状的粘合形状的每个循环
【发布时间】:2010-12-01 11:59:31
【问题描述】:

我正在尝试遍历形状粘连形状,它迭代一次然后在第二次迭代期间中断 Me.Application.ActivePage.Shapes(i).GluedShapes(visGluedShapesAll2D, "") 上的“无效参数错误”。当然,如果它在第一次迭代时正确运行,它应该在第二次和第三次等时正确运行......

在这段代码中,我遍历所有形状以寻找特定类型,然后遍历 GluedShapes 数组并检查它的 id 是否等于每个数组元素返回的 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

谢谢,我们将不胜感激。

【问题讨论】:

    标签: vba foreach visio shapes


    【解决方案1】:

    无需遍历所有我可以使用的形状

     Dim s As Shape
     Dim id As Variant
    
     Set s = Application.ActiveWindow.Page.Shapes.ItemFromID(Selection.PrimaryItem.id)
    
     id = s.GluedShapes(visGluedShapesAll1D, "")(0)
    

    其中 s 是当前形状,上面给出了我当前形状粘到的第一个形状的 id,因为这个形状只能连接到一个父形状。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      相关资源
      最近更新 更多