VBA Word Range.Word zählt Punkt als Wort?
Hallo zusammen
wie schon der Titel sagt habe ich das Problem, dass VBA:
oDoc.Tables(1).Cell(zeile, spalte).Range.Words(Wortzaehler).Font.Italic = True
gewisse Zeichen als Wort interpretiert. Bspw. ".", "%", sind alles eigenständige Wörter
Wenn ich nun jedes Wort einzeln durchgehen möchte, muss ihc zu vor mittels split " ", den string teilen. ABER die anzahl an wörtern simmt dann nicht
bspw:
Das ist ein 100% Test --> das sind laut Split bei jedem leerzeichen 5 Wörter
ABER
Range.Words(Wortzaehler) zählt 6 Wörter, da das Prozentzeichen als extra Wort gezählt wird. Wie kann ich den "wirklich" alle Wörter abzählen (inkl. Prozentzeichen usw.)
2 Antworten
Du könntest erst den gewünschten Bereich per VBA markieren
oDoc.Tables(1).Cell(zeile, spalte).Select
Selection.MoveLeft Unit:=wdCharacter, Count:=1
'Vorher muss natürlich ANZAHLZEICHEN ermittelt werden.
Selection.MoveRight Unit:=wdCharacter, Count:=ANZAHLZEICHEN, Extend:=wdExtend
und dann
Selection.Font.Italic = True
verwenden (wenn du aus einer anderen Anwendung auf Word zugreifst, musst du noch die Referenz zur Word-Application voranstellen).
Dann brauchst du nur die Anzahl der Zeichen des gewünschten Textabschnittes und die bekommst du mit len().
puh.... und wie soll ich den Text markieren, wenn ich nicht weiß aus wie vielen Wörter er besteht?
Willst du einfach die gesamte Zelle kursiv machen oder wofür brauchst du den Wortzähler, wenn du den Text nicht kennst? Dann wäre es einfach
oDoc.Tables(1).Cell(zeile, spalte).Range.Font.Italic = True
Zeichen als Wort interpretiert. Bspw. ".", "%", sind alles eigenständige Wörter
Kannst Du diese nicht zählen (lassen) ... und in Abzug bringen (lassen)?
danke