Som jeg forklarede i mit svar til dig i
https://www.computerworld.dk/eksperten/spm/1024927, skal en tabel være ”uniform”, for at man kan tilgå rækker og kolonner via VBA. I makroen nedenfor springes en tabel over, hvis den ikke er uniform.
Du kan have brug for at tilføje fejlhåndtering m.m.
Det er generelt meget bedre at arbejde med Range i stedet for Selection, men da en kolonne i en tabel ikke umiddelbart er tilgængelig som range, har jeg brugt selection her. Når der ændres på selection, skal du hele tiden være opmærksom på, hvad der er markeret og holde styr på det.
Se kommentarerne i koden.
Sub ExamineAllTables_CopyCol2IfSearchedTextFoundInCell1()
Dim oTable As Table
Dim oCol As Column
For Each oTable In ActiveDocument.Tables
If oTable.Uniform = True Then
With oTable
'replace XXXX with the text to be found in cell 1 col 1
If InStr(1, oTable.Cell(1, 1).Range.Text, "XXXX") > 0 Then
.Columns(2).Select
Selection.Copy
'INSERT CODE TO DO SOMETHING WITH THE COPIED COLUMN
End If
End With
End If
Next oTable
End Sub