2017-01-09 17 views
0

Мне нужен код VBA для MS Word, который выбирает несколько таблиц (по моему выбору) и вводит строку на основе объекта текстового поля. Я написал код, который делает это, но он станет повторяющимся, если я должен выбрать большое количество таблиц.Word vba multiple table selection

Private Sub Claim_Change() 

    Dim j As Table 
    Set j = ActiveDocument.Tables(2) 
    Dim k As Table 
    Set k = ActiveDocument.Tables(3) 

'Input claim 
j.Select 
Selection.Delete 

With j 
.Cell(1, 1).Range.InsertAfter "Claim #: " & Claim 
.Cell(1, 2).Range.Text = Format(Date, "MMMM DD, YYYY ") 
.Columns.AutoFit 
End With 

k.Select 
Selection.Delete 

With k 
.Cell(1, 1).Range.InsertAfter "Claim #: " & Claim 
.Cell(1, 2).Range.Text = Format(Date, "MMMM DD, YYYY ") 
.Columns.AutoFit 

End With 
Claim.Select 

End Sub 

Есть ли более простой способ свести этот код?

ответ

0

Вы можете использовать следующий шаблон (я удалил некоторые данные, но это даст вам идею), чтобы справиться с этим легко:

Option Explicit 

Private Sub Claim_Change() 

Dim myTable As Table 
Dim tables() As Variant 
Dim tableCounter As Long 

tables = Array(1, 2, 5, 21) 

For tableCounter = LBound(tables) To UBound(tables) 

    ActiveDocument.tables(tables(tableCounter)).Select 
    Selection.Delete 

Next tableCounter 

End Sub