Объединить или объединить таблицу слов с условием - PullRequest
1 голос
/ 22 мая 2019

Слово документ, содержащий несколько таблиц.Если какая-либо таблица имеет строки, равные значению x (например, 12), тогда удалите первую строку, обрежьте эту таблицу и вставьте ее ниже последней строки предыдущей таблицы (означает объединить выбранную таблицу с предыдущей таблицей в конце).Приведенный ниже код удаляет первую строку, но вставляет ту же таблицу над выбранной таблицей.Я использовал копию в коде ниже вместо вырезать.

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

1 Ответ

1 голос
/ 22 мая 2019

Предоставлено количество строк в первой таблице <> 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
...