Hallo Lars,
sorry für die späte Antwort. Wollte dir eigentlich gestern schon antworten aber da ging grad ein schweres Gewitter nieder und ich musste meine Technik schützen.
Wie du sicher inzwischen selbst fesgestellt hast, hat das Range-Objekt eine Words-Auflistung. Du kannst also durchaus auch nur das xte wort daraus anwählen. Wenn du das durch Bookmarks ersetzen willst, solltest du allerdings das Wort stehen lassen und nicht deleten. Dann kannst du z.B. diesen Code verwenden um die Bookmarks anzulegen:
If wddoc.Tables.Count >= 2 Then
For i = 2 To wddoc.Tables.Count
With wddoc.Tables(i).Cell(Row:=1, Column:=2).Range
.Words(5).Bookmarks.Add Name:="AnredeTabelle" & i
.Words(6).Bookmarks.Add Name:="VornameTabelle" & i
.Words(7).Bookmarks.Add Name:="NachnameTabelle" & i
End With
Next i
End If
Falls es dich stört, dass da immer noch Max Mustermann steht, kannst du diesen auch durch Platzhalter ersetzen. Hierfür würde ich Formfields verwenden. Diesen kannst du dann ebenfalls Bookmarks hinzufügen. Der Code dazu könnte z.B. so aussehen:
If wddoc.Tables.Count >= 2 Then
For i = 2 To wddoc.Tables.Count
With wddoc.Tables(i).Cell(Row:=1, Column:=2).Range
wddoc.FormFields.Add Range:=.Words(7), Type:=70 'wdFieldFormTextInput
wddoc.FormFields.Add Range:=.Words(6), Type:=70 'wdFieldFormTextInput
wddoc.FormFields.Add Range:=.Words(5), Type:=70 'wdFieldFormTextInput
.FormFields(1).Range.Bookmarks.Add Name:="AnredeTabelle" & i
.FormFields(2).Range.Bookmarks.Add Name:="VornameTabelle" & i
.FormFields(3).Range.Bookmarks.Add Name:="NachnameTabelle" & i
End With
Next i
End If
PS: Du kannst die Schleife natürlich auch bei 1 beginnen und alle Tabellen gleich behandeln. Das spart dir viel Tipparbeit.
Gruß Mr. K.
|