Как мне зациклить существующий макрос? - PullRequest
1 голос
/ 19 апреля 2019

У меня есть таблица в MS Word, которая составляет 2 столбца на 1000 строк. Я сделал макрос, который по порядку

  1. добавляет новую строку ниже текущей,
  2. объединяет две ячейки в новом ряду,
  3. вырезает и вставляет текст из указанной выше ячейки в новую строку,
  4. перемещает изображение на один столбец, а
  5. добавляет текст в ячейку. Как только он завершает эту строку событий, курсор находится в положении, чтобы сделать все это снова.

Нет условий, которые могли бы испортить его во время работы (т. Е. Пустые ячейки и т. Д.), Мне не нужен код для поиска конкретных вещей, мне просто нужно его повторить.

Что мне нужно добавить к существующему коду, чтобы это повторялось до конца документа (в частности, 1000 раз).

Я видел код для Excel, но я не видел код для просмотра таблицы в Word.

Selection.MoveDown Unit:=wdParagraph, Count:=2, Extend:=wdExtend
Selection.InsertRowsBelow 1
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=2, Extend:=wdExtend
Selection.Cells.Merge
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.Cut
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.PasteAndFormat (wdPasteDefault)
Selection.Font.Size = 4
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Cut
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.PasteAndFormat (wdPasteDefault)
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.Font.Size = 3
Selection.TypeText Text:="Unique specimen identifier not a property tag"
Selection.MoveDown Unit:=wdLine, Count:=2
Selection.MoveLeft Unit:=wdCharacter, Count:=2, Extend:=wdExtend
Selection.MoveLeft Unit:=wdCharacter, Count:=1

Все, что я ожидаю, это иметь возможность запускать код один раз и повторять его до тех пор, пока он не достигнет конца документа, и, если возможно, повторить определенно 1000 раз.

Надеюсь, это не слишком "широко", так как у меня есть код и я задаю конкретный вопрос.

1 Ответ

1 голос
/ 19 апреля 2019

Вы можете повторить свой набор инструкций, заключив его в цикл For...Next, который является довольно стандартным для приложений VBA.Этот код создает цикл и переменную 'index', а затем сообщает ему, что нужно пройти этот индекс ровно 1000 раз.определенный критерий удовлетворяется, вы бы вместо этого использовали цикл Do...While или Do...Until.

...