Visio VBA 删除活动中的所有类似形状 sheet 不删除所有
Visio VBA Delete all Like shapes on active sheet not deleting all
我创建此函数是为了遍历当前 sheet 并删除所有以“Stn_”开头的形状。好像一次只能删除几个。我必须多次结束 运行 才能将它们全部删除。我不确定为什么它不能正常工作...
Private Sub btnReset_click()
'Reset Shapes needs work
For Each shp In ActivePage.Shapes
Debug.Print shp.Name
If shp.Name Like "Stn_*" Then
ActiveWindow.Select shp, visSelect
ActiveWindow.Selection.Delete
End If
Next
结束子
任何人都可以对它为什么这样做有任何指示或解释吗?
非常感谢。
删除形状时需要倒数。例如,如果您删除形状 1,则形状 2 将成为新的形状 1,但循环计数器会绕过该形状移动到 2。所以你不能使用 For Each,你必须使用普通的旧 For 但按 -1 计数。
我创建此函数是为了遍历当前 sheet 并删除所有以“Stn_”开头的形状。好像一次只能删除几个。我必须多次结束 运行 才能将它们全部删除。我不确定为什么它不能正常工作...
Private Sub btnReset_click()
'Reset Shapes needs work
For Each shp In ActivePage.Shapes
Debug.Print shp.Name
If shp.Name Like "Stn_*" Then
ActiveWindow.Select shp, visSelect
ActiveWindow.Selection.Delete
End If
Next
结束子
任何人都可以对它为什么这样做有任何指示或解释吗?
非常感谢。
删除形状时需要倒数。例如,如果您删除形状 1,则形状 2 将成为新的形状 1,但循环计数器会绕过该形状移动到 2。所以你不能使用 For Each,你必须使用普通的旧 For 但按 -1 计数。