Word VBA analisar texto e transformá-lo em uma tabela

0

Entrada:

##TABLE_START##
##ROWS=3
##COLS=2
##Value
##Decode
##0
##Clock running
##1
##Clock not running
##TABLE_END##

##TABLE_START##
##ROWS=4
##COLS=2
##Value
##Decode
##0
##Off
##1
##On
##Z
##High Z
##TABLE_END##

Saída desejada:

Eu quero fazer isso por cerca de 400 tabelas. Eu tentei gravar uma macro na palavra, mas bloqueia o mouse ao gravar a macro e apenas grava as teclas absolutas atingidas. Gostaria de fazer algo mais geral que pesquise ##TABLE_START## , analise todas as linhas até ##TABLE_END## e, em seguida, crie uma tabela na parte inferior do documento preenchida com as informações apropriadas.

Código atual Word VBA 2010: (Apenas um trecho do código - Ele apenas gravou as teclas pressionadas, enquanto eu quero fazer algo que funciona para todas as tabelas)

O copiar e colar é bom, mas preciso alterar como a seleção é feita para ser mais geral e trabalhar para todas as tabelas

Selection.MoveDown Unit:=wdLine, Count:=7
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Selection.MoveUp Unit:=wdLine, Count:=6
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Copy
Selection.MoveDown Unit:=wdLine, Count:=7
Selection.PasteAndFormat (wdFormatOriginalFormatting)
    
por SwimBikeRun 30.09.2014 / 00:44

1 resposta

1

Nota: estou ciente de que esta não é uma resposta completa

Isso deve começar pesquisando linha por linha a palavra "start". Quando encontrado, você pode começar a construir a tabela. Então você pode ver StackOverflow criando tabelas .

Sub tablemaker()
Dim dDoc As Document
Set dDoc = ActiveDocument
Dim rRng As Range
Dim p As Paragraph

For Each p In dDoc.Paragraphs
Set rRng = p.Range
    With rRng.Find
       .Text = "start"
        If .Execute Then
        'create table
        Set rRng = Nothing
        End If
    End With
    Next
End Sub
    
por 30.09.2014 / 14:09