包含多个表的Word文档。如果有行等于值x的表(例如12),则删除第一行并剪切该表并将其粘贴到上一个表的最后一行下方(意味着将所选表与最后一个表连接在一起)。下面的代码删除第一行,但将同一表粘贴到所选表的上方。我在下面的代码中使用了copy而不是cut。
Private Sub MergeTables()
Dim tbl As Table, r As Row
Dim i As Integer
With ActiveDocument
For Each tbl In ActiveDocument.Tables
If tbl.Rows.Count = 12 Then
With tbl
.Rows(1).Delete
tbl.Range.Copy 'Need to paste below last row of previous table
'tbl.Range.GoTo What:=wdGoToTable, Which:=wdGoToPrevious 'Pasting above the same table
tbl.Range.PasteAndFormat wdFormatOriginalFormatting
End With
End If
Next tbl
End With
End Sub
答案 0 :(得分:1)
提供了第一张表的行数<> 12:
Sub MergeTables()
Dim TblSrc As Table, TblTgt As Table, Rng As Range
For Each TblSrc In ActiveDocument.Tables
With TblSrc
If .Rows.Count = 12 Then
.Rows(1).Delete
Set Rng = TblTgt.Range
Rng.Collapse wdCollapseEnd
Rng.FormattedText = .Range.FormattedText
.Delete
Else
Set TblTgt = TblSrc
End If
End With
Next
End Sub