Ich möchte ein Makro schreiben, um Zahlen zu finden und sie in einem Dokument umzukehren.
zum Beispiel konvertieren: 123456
zu 654321
ich dieses Makro, aber es funktioniert nicht schreiben:Umkehren von Zahlen im Dokument mit Makro
Function inverter(Numbers)
Dim Num As Long
Dim inverted As Long
Num = Numbers
Do Until Num >= 1
remainder = Num Mod 10
Num = Num/10
inverted = inverted * 10 + remainder
Loop
inverter = inverted
End Function
Sub invert()
Dim a As Long
Selection.GoTo What = wdGoToLine, Which = wdGoToFirst
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([!0-9])([0-9]@)([!0-9])"
.Replacement.Text = "\1" & a="\2" inverter(a) & "\3"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End Sub
Wenn ich es diesen Fehler kompilieren zurück:
---------------------------
Microsoft Visual Basic for Applications
---------------------------
Compile error:
Expected: end of statement
---------------------------
OK Help
---------------------------
Debuggen Sie das Programm - verwenden Sie 'F8' Taste, um herauszufinden, welche Zeile Fehler verursacht! –
'. Replacement.Text =" \ 1 "& a =" \ 2 "Wechselrichter (a) &" \ 3 "' Überprüfen Sie diese Zeile. Es scheint ein fehlendes '&' zu geben und ich denke nicht, dass 'a = "\ 2" 'auch funktionieren wird. Auch bitte nicht alle Aussagen in einer Zeile, es ist unmöglich zu lesen. – arcadeprecinct
Zusatz zu meinem letzten Kommentar: 'a' und' Inverter' sollten wahrscheinlich geändert werden, um mit Strings umzugehen. 'a =" \ 2 "& Inverter (a)' funktioniert nicht, weil 'a =" \ 2 "' nicht ausgewertet wird, wenn der Text ersetzt wird, aber wenn der Ersetzungstext gesetzt ist, wird false zurückgegeben. '" \ 2 "& Inverter (" \ 2 ")' funktioniert auch nicht, weil 'Inverter ("\ 2") 'zum Zeitpunkt der Definition von replacement.text ausgewertet wird. Ich würde empfehlen, in reguläre Ausdrücke zu schauen und die Matches zu durchlaufen. – arcadeprecinct