无法删除visio中的所有连接形状

时间:2011-12-30 06:27:18

标签: vba visio

我正在尝试使用以下代码删除所有连接点的形状 但仍然有一些连接点没有被删除。 我不明白为什么会发生这种情况

For currentRow = 0 To shape.Section(Visio.VisSectionIndices.visSectionConnectionPts).Count - 1
        shape.DeleteRow Visio.VisSectionIndices.visSectionConnectionPts, visRowFirst + currentRow
Next currentRow

有人可以对这部分有所了解吗?

1 个答案:

答案 0 :(得分:1)

第一次循环currentRow为0.因此,您删除索引为0的行。第二行现在成为第一行,其索引从1更改为0.然而,您的循环将currentRow递增为1,因此您跳过了新的第一排。对于每次迭代重复此过程,并跳过每隔一行。

您可以直接删除第一行,直到没有剩余的行。

While Shape.RowExists(Visio.VisSectionIndices.visSectionConnectionPts, visRowFirst, 0)
  Shape.DeleteRow Visio.VisSectionIndices.visSectionConnectionPts, visRowFirst
Wend

根据您的应用程序,最简单的解决方案可能是删除连接点部分:

Shape.DeleteSection Visio.VisSectionIndices.visSectionConnectionPts