Word VBA 解析文本并将其转换为表格

Word VBA 解析文本并将其转换为表格

输入:

##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 个表执行此操作。我尝试在 Word 中录制宏,但它在录制宏时会锁定鼠标,并且只记录绝对按键。我想做一些更通用的事情,搜索##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

注意:我知道这不是一个完整的答案

这应该会让您开始逐行搜索单词“start”。找到后,您可以开始构建表格。然后您可以看到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

相关内容