Hilfe benötigt: Word Tabellentext formatieren (Case Anweisung) funktioniert nicht wie gewünscht

  • Word

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Petersilie.

    Hilfe benötigt: Word Tabellentext formatieren (Case Anweisung) funktioniert nicht wie gewünscht

    Hallo zusammen,

    ich habe ein kleines Problem, bei dem ich nicht weiterkomme:
    ich möchte automatisiert in einer Word-Tabelle bestimmte Textteile formatieren. Das funktioniert leider nicht 1oo%ig:

    Visual Basic-Quellcode

    1. Sub Formatierung()
    2. '
    3. Dim objRange As Range
    4. Dim a As Integer
    5. Dim zeilenanzahl As Integer
    6. zeilenanzahl = ActiveDocument.Tables(1).Rows.Count
    7. For a = 1 To zeilenanzahl
    8. varFindText = Array("agreed", "disagreed", "angenommen", "nicht angenommen", "modified agreed", "modifiziert angenommen", "withdrawn", "zurückgezogen", "modified", "modifiziert", "noticed")
    9. Set objRange = ActiveDocument.Tables(1).Cell(a, 8).Range
    10. With objRange.Find
    11. For i = LBound(varFindText) To UBound(varFindText)
    12. .Forward = True
    13. .Wrap = wdFindContinue
    14. .MatchCase = False 'True, Wenn der Suchvorgang Groß-/Kleinschreibung beachtet wird.
    15. .MatchWholeWord = True 'True, Wenn der Suchvorgang nur ganze Wörter sucht und keinen Text, der Teil eines größeren Worts ist.
    16. .MatchWildcards = False 'True, Wenn der zu suchende Text Platzhalter enthält.
    17. .MatchSoundsLike = False 'True, wenn Wörter, die ähnlichen den gesuchten Text.
    18. .MatchAllWordForms = False 'True, Wenn alle Formen der den gesuchten Text des Suchvorgangs gefunden werden
    19. .Execute FindText:=varFindText(i)
    20. If .Found = True Then
    21. Select Case .text
    22. Case "modified agreed", "modifiziert angenommen", "withdrawn", "zurückgezogen", "modified", "modifiziert", "noticed"
    23. objRange.Bold = True
    24. objRange.Font.ColorIndex = wdBlack
    25. Case "agreed", "angenommen"
    26. objRange.Bold = True
    27. objRange.Font.ColorIndex = wdGreen
    28. Case "disagreed", "nicht angenommen"
    29. objRange.Bold = True
    30. objRange.Font.ColorIndex = wdRed
    31. End Select
    32. End If
    33. Next i
    34. End With
    35. Next a
    36. Selection.HomeKey unit:=wdStory
    37. End Sub


    bei Case "modified agreed" macht er einfach keine Formatierung, sondern er formatiert ausschließlich das Wort "agreed" in fett und grün, aber nichts sonst. ich verstehe nicht woher der Fehler kommt, vielleicht kann mir hier jemand helfen.

    Vielen Dank schonmal vorab.

    Schöne Grüße,
    Stephan
    Hallo,

    das liegt daran das agreed sowohl in modified agreed vorkommt als auch in agreed als auch in disagreed
    der unterschied zwischen modified agreed und diagreed ist, dass disagreed ein einzelnes Wort ist im Gegensatz zu modified agreed, welches aus zwei eigenständigen Wörtern besteht.

    Ändere alle modified agreed in modifiedagreed oder magreed o.ä um, dann geht es.