Veröffentlicht 23. Mai 201312 j Gibt es für folgendes Problem in Word Makros eine Lösung: Ich habe eine Variable die einen Text enthält. Ich möchte diese Variable schreiben aber sonderzeichen sollen nicht mitgeschrieben werden. Mein Beispiel Variable1= "hallo/tschüss" Ich will den slash / nicht dazwischen haben also nur "hallotschüss" schreiben.
24. Mai 201312 j Autor Hallo uenetz! Leider funktioniert das ganze nicht so einfach :/ Dazu muss ich sagen, dass ich ein ziemlicher Makro-Anfänger bin. Eine ähnliche Lösung habe ich bereits in Betracht gezogen. Das Problem ist, dass man in einer .Find Schleife eine zweite .Find Schleife hat. Das bedeutet, dass das ".Found=true" von der inneren Schleife aus die äußere Beeinflusst und es zu einer Endlosschleife kommt. Die innere Schleife verfälscht also die Suchergebnisse der äuseren. Sub LinkGenerator() Dim dateiname As String dateiname = ActiveDocument.Name 'Wenn Dateiname = .doc -3. sonst -4 'dateiname = Left(dateiname, Len(dateiname) - 4) If (Right(dateiname, 3) = "doc") Then dateiname = Left(dateiname, Len(dateiname) - 4) Else dateiname = Left(dateiname, Len(dateiname) - 5) End If Dim wortersatz As String Dim rng As Range Set rng = ActiveDocument.Range Dim rngclean As Range With rng.Find .Style = ActiveDocument.Styles(wdStyleHeading2) 'Nach dem ersten Durchlauf muss ein zweiter folgen, der nach der anderen Überschrift sucht. .Text = "" .Forward = True .Wrap = wdFindStop .Execute Do While .Found = True rng.Select ueberschrift = rng ueberschrift = Left(ueberschrift, Len(ueberschrift) - 1) 'Hier gibst du das Suchwort ein Const c_suchwort = "/" 'Hier das Wort welches dann anstatt dem alten steht Const c_ersetzen = "" Set rngclean = rng With rngclean.Find .Text = c_suchwort .Execute ReplaceWith:=c_ersetzen, Replace:=wdReplaceAll End With ueberschriftclean = rngclean ueberschriftclean = Left(ueberschriftclean, Len(ueberschriftclean) - 1) Selection.TypeText Text:=ueberschrift Selection.Style = "C1H Topic Properties" Selection.TypeText Text:=" " & "|url=" & dateiname & "." & ueberschriftclean & ".htm" .Execute Loop 'MsgBox rng End With
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.