Hallo,
habe ein Worddokument mit nur 2 gleichen Sätzen.
Wie kann man diese beiden Sätze (Filmtitel) durch ein Muster finden und durch einen anderen Satz ersetzen?
Habe es schon mit folgendem Muster versucht: (){1;}
Dabei wird aber jedes Wort durch den neuen Satz ersetzt.
Es soll aber nur der ursprüngliche Satz durch den neuen ersetzt werden.
Danke.
habe ein Worddokument mit nur 2 gleichen Sätzen.
Wie kann man diese beiden Sätze (Filmtitel) durch ein Muster
finden und durch einen anderen Satz ersetzen?
Habe es schon mit folgendem Muster versucht: (){1;}
Dabei wird aber jedes Wort durch den neuen Satz ersetzt.
Es soll aber nur der ursprüngliche Satz durch den neuen
ersetzt werden.
Hallo Gunter,
als Ansatz,
Sub Ersetzen()
With ActiveDocument
.Content = Replace(.Content, "Max geht nach hause", "Max fährt nach hause")
End With
End Sub
Gruß
Reinhard
Hallo Reinhard,
der erste Satz ist leider immer ein anderer.
Habe das Problem inzwischen dadurch gelöst, dass ich zunächst alle Blanks aus dem ersten Satz entfernt habe. Somit bleibt nur ein großes Wort übrig und dies läßt sich per Muster (){1;1} finden un dersetzen.
Danke.
Gruß
Gunter
Nachfrage zu Ersetzen in Word
der erste Satz ist leider immer ein anderer.
Habe das Problem inzwischen dadurch gelöst, dass ich zunächst
alle Blanks aus dem ersten Satz entfernt habe. Somit bleibt
nur ein großes Wort übrig und dies läßt sich per Muster
(){1;1} finden un dersetzen.
Hallo Gunter und andere Wissende,
wie hast du alle Blanks nur in dem einen Satz ersetzt?
Durch Eingabe in Ersetzen von
Die Sonne scheint
durch
DieSonnescheint
? Oder anders?
Und dieses mir unbekannte (){1;1} , wo trägst du das bzw. was trägst du da bei Ersetzen ein?
Kann man über die Parameter von (){1;1} irgendwo nachlesen?
Danke ^ Gruß
Reinhard
Hallo Reinhard,
Ich habe alles Blanks einfach folgendermaßen ersetzt (Makro aufgezeichnet) :
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = „“
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Das andere ersetzen habe ich mit Muster gemacht.
Wenn man dies in Word von Hand ausführt, muß man nach Ersetzen gehen,
dann Platzhalterzeichen ankreuzen. Unter Sonstiges siehst du dann was es alles für Platzhalter gibt. Ist so ähnlich wie Regular Expression.
Mit dem Makro sieht es dann so aus:
Selection.GoTo What:=wdGoToBookmark, Name:=„Blank_MP3_panel4“
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „(){1;}“
.Replacement.Text = UserForm2.TextBox1.Text
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Gruß
Gunter
Das andere ersetzen habe ich mit Muster gemacht.
Wenn man dies in Word von Hand ausführt, muß man nach Ersetzen
gehen,
dann Platzhalterzeichen ankreuzen. Unter Sonstiges siehst du
dann was es alles für Platzhalter gibt. Ist so ähnlich wie
Regular Expression.
Hallo Gunter,
? Platzhalter, finde ich irschendwie nicht, ich hab Word 2000.
Ich sehe das Bild bei Ersetzen:
http://www.image-load.net/page.php?type=jpg&f=028a8a…
Beim ersten flüchtigen Darüberschauen sieht die erste Prozedur so aus als ob du da alle Leerzeichen entfernst aus dem Dokument, aber das muß ich noch verifizieren.
Warum du da ein Dokument nur aus zigmal den gleichen zwei Sätzen verstehe ich auch nicht.
Die zweite Prozedur, da erkenne ich spontan nur, daß du da den Wert oder was das ist, „(){1;}“ im Dokument durch den Inhalt einer Textbox einer Uf ersetzt.
Und regexp hat geniale Fähigkeiten, leider kenne ich da kaum was von den parametern, ich weiß wo ich sie im Internet finde, aber *seufz*, irgendwie keine Lust mich da einzulesen.
Bei konkretem Bedarf würde ich das tun.
Nun sieht mir aber „(){1;}“ zwar ähnlich wie regexp aus, aber halt anderst.
So gesehen, würde ich mich freuen, du könntest mir Links nennen wo dazu was steht.
Gruß
Reinhard
Mit dem Makro sieht es dann so aus:
Selection.GoTo What:=wdGoToBookmark, Name:=„Blank_MP3_panel4“
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „(){1;}“
.Replacement.Text = UserForm2.TextBox1.Text
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Gruß
Gunter
Hallo Reinhard,
bei meinem Dokument handelt es sich um einen CD-Einleger für eine Jewel Case z.B. Firma Avery Zweckform Artikel C32250-25 (Vorlage A-0019-01_P.doc) bei dem der Filmtitel jeweils auf den beiden Schmalseiten und auf dem Deckblatt gedruckt wird. Also 3 mal der selbe Satz.
Den Mustervergleich für Word kannst du hier nachlesen:
http://www.akademie.de/office-programme/office-micro…
Man kann nur nach einem Muster suchen und dann mit einem String ersetzen. Also nicht so wie du es in deinem Beispiel gemacht hast.
In meinem Fall habe ich zunächst alle Blanks " " durch „“ ersetzt, also quasi gelöscht. Aus einem Satz wird dann ein großes Wort.
Bei meiner Mustersuche suche ich nach einem Wort (){1;} was mindestens einmal vorkommt. Ob man das eine oder andere bei meinem Muster noch weglassen kann habe ich nicht ausprobiert.
Das Ergebnis, also mein komplettes Dokument, kannst du hier downloaden:
https://sfm.hidrive.strato.com/lnk/iHhOMc27
Gruß
Gunter
Hallo Gunter,
dankeschön für deine Mühen.
Gruß
Reinhard
Guten Tag,
vielleicht hilft Dir autolekt weiter.
Viel Spass damit.
Gottfried