Не могу удалить все точки соединения формы в Visio - PullRequest
1 голос
/ 30 декабря 2011

Я пытаюсь удалить все точки подключения формы, используя следующий код но некоторые точки подключения не удаляются. Я не понимаю, почему это происходит

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

Кто-нибудь может пролить свет на эту часть?

1 Ответ

1 голос
/ 02 января 2012

Первый раз в вашем цикле 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
...