1

У меня есть сценарии фильма. Первый столбец - временной код, второй столбец - динамик, третий столбец - диалоговое окно.

Я хочу пройтись по всему сценарию, но только что-то делать с третьим столбцом (диалог).

У меня уже есть макрос для того, что я делаю в третьем столбце. Мне просто нужно, чтобы:

  • начать в строке 1 столбец 1
  • вкладка в строку 1 столбец 2
  • Снова перейдите к строке 1 столбца 3 (затем сделайте мой предварительно созданный макрос)
  • затем снова нажмите Tab, возвращая меня к r2 c1

Но он должен остановиться, когда попадет в пустую ячейку таблицы. Мои макросы продолжают попадать в бесконечные циклы, продолжая создавать новые ячейки, поскольку клавиша табуляции проверяется программно, несмотря на множество различных проверок конца документа. Все решения предполагают, что это обычный не представленный в виде таблицы документ и код, такой как:

Do Until ActiveDocument.Bookmarks("\Sel") = ActiveDocument.Bookmarks("\EndOfDoc")
    '(Do something)
Loop

выходит из строя.

1 ответ1

2

Вы можете выполнять итерацию по строкам и ячейкам таблицы программно, не вкладывая их в каждую ячейку:

Sub ProcessScriptTable()
  Dim oTbl As Table
  Set oTbl = ActiveDocument.Tables(1)

  For Each oRow In oTbl.Rows
    Set oCell = oRow.Cells(3)

    'Do something with each cell
    MsgBox oCell.Range.Text
  Next

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .