Makrorekorder zeichnet falschen Code auf
Was passiert denn hier? Ich zeichne mit dem Makrorekorder etwas auf, rufe den Befehl auf – und erhalte eine Fehlermeldung.
Die Antwort: Das ist richtig. An einigen (zugegeben, sehr wenigen) Stellen zeichnet Excel falsch auf. Wenn Sie beispielsweise die Datenüberprüfung mit einer Formel aufzeichnen:
zeichnet Excel folgenden Code auf:
With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlLessEqual, Formula1:=“=TODAY(“
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = „“
.ErrorTitle = „“
.InputMessage = „“
.ErrorMessage = „“
.ShowInput = True
.ShowError = True
End With
Erstaunlicherweise fehlt nach dem TODAY die schließende Klammer.
Oder Sie zeichnen die Formel auf:
=rechts(F2;1)<>“ “
also – verbiete am Ende des Textes ein Leerzeichen.
Dann zeichnet der Makrorekorder auf:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=“=rechts(F2;1)<>““ „““
Der korrekte Befehl müsste jedoch lauten:
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=“=right(F2,1)<>““ „““
Also in der US-amerikanischen Schreibweise. Der Makrorekorder schafft die Übersetzung an dieser Stelle leider nicht.