Входные данные:

##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##

Желаемый результат:

Данные в таблицы

Я хочу сделать это около 400 таблиц. Я попытался записать макрос в слове, но он блокирует мышь при записи макроса и просто записывает абсолютные нажатия клавиш. Я хотел бы сделать что-то более общее, что ищет ##TABLE_START## , анализирует все строки до ##TABLE_END## , затем строит таблицу внизу документа, заполненную соответствующей информацией.

Текущее кодовое слово VBA 2010: (просто фрагмент кода - он просто записывает нажатия клавиш, а я хочу сделать что-то, что будет работать для каждой таблицы)

Копирование и вставка - это хорошо, но мне нужно изменить способ выбора, чтобы он был более общим и подходил для каждой таблицы.

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)

1 ответ1

1

Примечание: я знаю, что это не полный ответ

Это должно помочь вам начать поиск по строке слова "старт". Найдя, вы можете начать строить стол. Затем вы можете увидеть, как StackOverflow создает таблицы.

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

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