2017-11-03 1 views
1

Wie das Bild zeigt, möchte ich diesen Absatz der rot finden, aber nicht den Absatz als grün markiert finden.
Ich habe den folgenden Code versucht. Allerdings kann keine Antwort auf den Lauf, jemand kann mir sagen, wie man diesen Code verbessern. Wenn ich Fehler auf niedriger Ebene mache, kann die Hoffnung mich korrigieren, danke.Finden Sie einen bestimmten Absatz

Sub qw() 
Dim p As Paragraph, d As Document 
For Each p In ActiveDocument.Range.Paragraphs 
If p.Format.FirstLineIndent = CentimetersToPoints(0) And p.Range.Words(1) = "Author" Then 
p.Range.HighlightColorIndex = wdRed 
End If 
Next 

End Sub 

enter image description here

Antwort

1

es so versuchen:

If p.Format.FirstLineIndent = CentimetersToPoints(0) And p.Range.Words(1) = "Author " Then 
    p.Range.HighlightColorIndex = wdRed 
End If 

Sie müssen den Raum nach Author, soweit sie einen Teil des Wortes hinzufügen, wie gut ist. Lernen Sie, mit F8 zu debuggen, es wird von großem Nutzen für Sie in einfachen Aufgaben wie diesem sein.

Edit: Wie im Kommentar vorgeschlagen, InStr(p.Range.Words(1), "Author") beseitigt die Notwendigkeit für einen Raum zum gesuchten hinzufügen.

+0

Ich würde empfehlen Instr (p.Range.Words (1), "Autor"). Es wird funktionieren, selbst wenn Autor von hartem Speicherplatz oder etwas ähnlichem gefolgt wird. – MarcinSzaleniec

+0

@MarcinSzaleniec - klingt wahrscheinlich besser. Ich dachte, 'Left()' zu verwenden, aber ich fand heraus, dass es in VBA für Word nicht existiert. – Vityata

+1

@MarcinSzaleniec Vielen Dank für Ihren Vorschlag !! Ich werde mehr versuchen. –

Verwandte Themen