Word table 查找分段符,将行内容拆分为两行
Word table find paragraph break, split row content in to two row
单词 tables 具有可变的行数和列数。
下面的代码是我从之前在这个论坛上回答的,并尝试修改它。但是,由于缺乏知识,我可以找到或能够进一步编辑它。
table 中有几行在图像中以黄色标记为段落分隔符 (¶),在同一行中有几行 space 以绿色标记的文本。
我已尝试查找用于分段的行。如果找到,请在下方添加行并将内容拆分为两行。下面的图片,解释细节。以下 table 图像由打开格式标记呈现。
第一行宽度可变。因此,从第 2 行到最后一行查找,因为其余行相似。前三列保持不变。
找到相似 post 但未拆分行内容 (MS Word table -macro to find row containing specific text then move entire row to last row in the table)。我试图找到“^p”。
倒数第 4 列的任意行中有段落分隔符。新行在上面的行之后添加并复制内容然后拆分。第 1 至 3 列的文本之间有 space。
相似postMoving down a row in a Word table containing multi-paragraph cells
但不适用于混合宽度 table.
Sub FindParagraph()
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "^p"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = False
.Execute
End With
Do While .Find.Found
If .Information(wdWithInTable) = True Then
'Don not know code.
End If
.Collapse wdCollapseEnd
.Find.Execute
Loop
End With
End Sub
我怀疑宏记录器在这里会有多大帮助。尝试:
Sub Demo()
Application.ScreenUpdating = False
Dim Tbl As Table, r As Long, c As Long, bFnd As Boolean
For Each Tbl In ActiveDocument.Tables
With Tbl
For r = .Rows.Count To 2 Step -1
With .Rows(r).Range.Find
.Text = " "
.Replacement.Text = "^p"
.Execute Replace:=wdReplaceAll
.Text = "^p"
.Execute
bFnd = .Found
End With
If bFnd = True Then
.Rows.Add .Rows(r)
For c = 1 To .Columns.Count
If .Cell(r + 1, c).Range.Paragraphs.Count > 1 Then
.Cell(r, c).Range.Text = Split(.Cell(r + 1, c).Range.Text, vbCr)(0)
.Cell(r + 1, c).Range.Paragraphs(1).Range.Text = vbNullString
End If
Next
End If
Next
End With
Next
Application.ScreenUpdating = True
End Sub
单词 tables 具有可变的行数和列数。 下面的代码是我从之前在这个论坛上回答的,并尝试修改它。但是,由于缺乏知识,我可以找到或能够进一步编辑它。
table 中有几行在图像中以黄色标记为段落分隔符 (¶),在同一行中有几行 space 以绿色标记的文本。
我已尝试查找用于分段的行。如果找到,请在下方添加行并将内容拆分为两行。下面的图片,解释细节。以下 table 图像由打开格式标记呈现。
第一行宽度可变。因此,从第 2 行到最后一行查找,因为其余行相似。前三列保持不变。
找到相似 post 但未拆分行内容 (MS Word table -macro to find row containing specific text then move entire row to last row in the table)。我试图找到“^p”。
倒数第 4 列的任意行中有段落分隔符。新行在上面的行之后添加并复制内容然后拆分。第 1 至 3 列的文本之间有 space。
相似postMoving down a row in a Word table containing multi-paragraph cells 但不适用于混合宽度 table.
Sub FindParagraph()
With ActiveDocument.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "^p"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = False
.Execute
End With
Do While .Find.Found
If .Information(wdWithInTable) = True Then
'Don not know code.
End If
.Collapse wdCollapseEnd
.Find.Execute
Loop
End With
End Sub
我怀疑宏记录器在这里会有多大帮助。尝试:
Sub Demo()
Application.ScreenUpdating = False
Dim Tbl As Table, r As Long, c As Long, bFnd As Boolean
For Each Tbl In ActiveDocument.Tables
With Tbl
For r = .Rows.Count To 2 Step -1
With .Rows(r).Range.Find
.Text = " "
.Replacement.Text = "^p"
.Execute Replace:=wdReplaceAll
.Text = "^p"
.Execute
bFnd = .Found
End With
If bFnd = True Then
.Rows.Add .Rows(r)
For c = 1 To .Columns.Count
If .Cell(r + 1, c).Range.Paragraphs.Count > 1 Then
.Cell(r, c).Range.Text = Split(.Cell(r + 1, c).Range.Text, vbCr)(0)
.Cell(r + 1, c).Range.Paragraphs(1).Range.Text = vbNullString
End If
Next
End If
Next
End With
Next
Application.ScreenUpdating = True
End Sub