Hallo zusammen,
ich habe ein automatisch generiertes Worddokument mit vielen einzelnen Tabellen.
Bei allen Tabellen mit genau 3 Spalten möchte ich in der 3. Spalte ein Zeichen ( ; ) durch einen Zeilenumbruch ersetzen.
Pro Zelle können mehrere ; vorkommen.
Wichtig ist dass das Zeichen nur in den entsprechenden Tabellenzellen in der 3.Spalte ersetzt wird und an keiner anderen Position im Dokument.
Mein aktueller Code:
Der Code ersetzt das ; jetzt auch durch einen anderen String. "^l" soll ja das Kürzel für einen Zeilenumbruch sein. Allerdings wird kein Umbruch eingefügt sondern eben der String.
Ich vermute dass der Ansatz einen String durch einen anderen zu ersetzen hier nicht passend ist, habe aber keinen anderen Ansatz.
Hat evtl. jemand eine Lösung?
ich habe ein automatisch generiertes Worddokument mit vielen einzelnen Tabellen.
Bei allen Tabellen mit genau 3 Spalten möchte ich in der 3. Spalte ein Zeichen ( ; ) durch einen Zeilenumbruch ersetzen.
Pro Zelle können mehrere ; vorkommen.
Wichtig ist dass das Zeichen nur in den entsprechenden Tabellenzellen in der 3.Spalte ersetzt wird und an keiner anderen Position im Dokument.
Mein aktueller Code:
Code:
Sub UmbruchEinfuegen()
Dim AktuellesDokument As Document
Dim AktuelleTabelle As Table
Dim AktuelleZeile As Range
Dim AnzahlTabellen As Long
Dim AnzahlZeilen As Long
Dim AnzahlSpalten As Long
Dim T As Integer
Dim Z As Integer
Dim ZellenInhalt As String
Dim Muster As String
Dim Ersatz As String
Application.Visible = True
Set AktuellesDokument = Application.Documents.Item(1)
Muster = ";"
Ersatz = "^l"
AnzahlTabellen = AktuellesDokument.Tables.Count
For T = 1 To AnzahlTabellen
Set AktuelleTabelle = AktuellesDokument.Tables(T)
With AktuelleTabelle
Set AktuelleZeile = .Rows(1).Range
AnzahlZeilen = .Rows.Count
AnzahlSpalten = .Columns.Count
If AnzahlSpalten >= 3 Then
For Z = 1 To AnzahlZeilen
Set AktuelleZeile = .Rows(Z).Range
ZellenInhalt = AktuelleZeile.Cells(3).Range.Text
ZellenInhalt = Left(ZellenInhalt, Len(ZellenInhalt) - 2)
AktuelleZeile.Cells(3).Range.Text = Replace(ZellenInhalt, Muster, Ersatz)
Next
End If
End With
Next
End Sub
Der Code ersetzt das ; jetzt auch durch einen anderen String. "^l" soll ja das Kürzel für einen Zeilenumbruch sein. Allerdings wird kein Umbruch eingefügt sondern eben der String.
Ich vermute dass der Ansatz einen String durch einen anderen zu ersetzen hier nicht passend ist, habe aber keinen anderen Ansatz.
Hat evtl. jemand eine Lösung?