Macro do Word que percorre uma tabela e pára no final

1

Eu tenho roteiros de filmes. A primeira coluna é o código de tempo, a segunda coluna é o alto-falante, a terceira coluna é o diálogo.

Eu quero percorrer todo o script, mas apenas fazendo algo para a terceira coluna (diálogo).

Já tenho uma macro para o que faço na terceira coluna. Eu só preciso disso para:

  • começa na linha 1, coluna 1
  • separador para linha 1, coluna 2
  • tab novamente para a linha 1 da coluna 3 (e depois para a macro pré-criada)
  • , em seguida, aba novamente me levando de volta para r2 c1

Mas ele precisa parar quando atingir uma célula da tabela vazia. Minhas macros continuam atingindo loops infinitos, continuando a criar novas células à medida que a tecla tab é programaticamente verificada, apesar de muitas verificações diferentes para o final do documento. Todas as soluções lá fora presumem que é um documento comum, não-tabelado, e código como:

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

falha.

    
por chris G 29.03.2013 / 23:08

1 resposta

2

Você pode iterar linhas e células de uma tabela programaticamente sem tabulações em cada célula:

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
    
por 30.03.2013 / 02:28