2016-09-05 2 views
-1

Ich habe ein Word-Dokument, das mehr als 300 Tabellen enthält, die jeweils nur eine Zeile und zwei Spalten haben. In der ersten Spalte jeder dieser Tabellen befindet sich ein Text + eine weitere Tabelle. Ich muss den Stil dieser geschachtelten Tabellen ändern (der Stil der anderen Tabellen sollte sich nicht ändern), aber ich kann sie nicht auswählen.Zugriff auf verschachtelte Tabellen in MS Word von VBA

habe ich versucht, die folgenden:

Dim mytable As Table 
Dim nestedtable As Table 

For Each mytable In ActiveDocument.Tables 
    For Each nestedtable In mytable 
     nestedtable.Select 
    Next 
Next 

ich auch versucht:

Dim mytable As Table 
Dim nestedtable As Table 

For Each mytable In ActiveDocument.Tables 
    mytable.Select 
    For Each nestedtable In Selection 
     nestedtable.Select 
    Next 
Next 

Wie könnte ich diese verschachtelten Tabellen wählen?

Antwort

1

Ich habe nicht enthalten den Select Teil, da dies zu vermeiden ist alle Kosten, wie Sie feststellen werden, wenn Sie mit VBA weiter programmieren.

Versuchen Sie auch, den Variablen, die Sie deklarieren, aussagekräftigere Namen zu geben. So trainieren Sie Ihr Gehirn für später, wenn Sie die von Ihnen deklarierten Variablen vergessen.

Sub ModifyNestedTables() 

    Dim DocumentBodyTable As Table 
    Dim NestedTable As Table 

    For Each DocumentBodyTable In ActiveDocument.Tables 
     For Each NestedTable In DocumentBodyTable.Tables 

      With NestedTable 
       .ApplyStyleRowBands = False 
       .ApplyStyleHeadingRows = False 
       .ApplyStyleFirstColumn = False 
      End With 

     Next NestedTable 
    Next DocumentBodyTable 

End Sub 
0

OK, das ist peinlich, ich fand die Antwort auf meine eigene Frage nach 10 weiteren Minuten der Suche. Wie auch immer, für jeden, der das gleiche Problem in der Zukunft hat, ist dies, wie Sie die verschachtelten Tabellen zugreifen können (und die Art ändern):

Dim mytable As Table 
Dim nestedtable As Table 
For Each mytable In ActiveDocument.Tables 
    For Each nestedtable In mytable.Tables 
     nestedtable.Select 
     Selection.Tables(1).ApplyStyleRowBands = False 
     Selection.Tables(1).ApplyStyleHeadingRows = False 
     Selection.Tables(1).ApplyStyleFirstColumn = False 
    Next 
Next 
+0

Gut gemacht beim Drücken auf und herauszufinden, den Code auf eigene Faust. Ich habe eine ähnliche Antwort eingefügt, die die Verwendung von Select vermeidet, die um jeden Preis vermieden werden sollte. Guten Tag und fröhliche Programmierung –

Verwandte Themen