Kompilieren Ich habe einige Code, der den Prä-Prozessor verwendet Befehle: #If
, #Else
und #End If
mit VBA Application.StatusBar in Präprozessor Routine verursacht Fehler Laufzeit wenn
im Grunde muss ich
#If Mac then
msgbox "Can't update the list when running on a mac"
#Else
Application.StatusBar = "updating names..."
***other code here****
Application.StatusBar = false
#End if
Der Code funktioniert Gut auf meinem Computer, aber auf anderen, wenn das Arbeitsblatt geöffnet und der Code kompiliert wird, erscheint eine Fehlermeldung:
Beim Öffnen der Tabelle in der geschützten Ansicht tritt ein Fehler auf. Wenn nicht in der geschützten Ansicht, wird der Fehler nicht angezeigt. Es funktioniert gut, sobald das Sub aufgerufen wird, nachdem es geöffnet wurde, aber wenn es beim Öffnen kompiliert wird, fällt es um.
Wenn ich die Statusleiste-Befehle entfernen, tritt der Fehler nicht auf.
Ich habe versucht, ein 'On Error Resume Next' hinzuzufügen, aber das stoppt den Fehler nicht.
So scheint es, dass ich nicht die Statusleiste innerhalb einer Präprozessor-Routine verwenden kann, und sicher sein, dass es funktioniert.
Ich benutze Excel 2016 und ich habe den Fehler auf Excel 2013 gesehen. Beide Maschinen sind 64 Bit Windows 8.1 und tatsächlich beide Maschinen sind genau die gleichen Spezifikationen ASUS UX305F mit Core-M-Prozessor.
Kann jemand Licht in was könnte passieren?
"ein Laufzeitfehler beim Kompilieren" - das wäre ein * Kompilierfehler * - bei der Fehlermeldung handelt es sich eindeutig nicht um einen Kompilierfehler. Es tritt zur Laufzeit auf, wenn VBA die Präprozessordirektiven ausführt. Es wäre schön, die relevanten "# If" Präprozessor-Bedingungen einzubeziehen. –
danke für die Korrektur meiner verwechselt Terminologie. Ich habe aktualisiert, um die verwendete Direktive zu zeigen. Ich werde ThisWorkbook.Application.statusbar versuchen und zurück melden.Ich habe nicht den PC, der den Fehler verursachte, also mailt der Typ, um es zu versuchen – MrPea
@Slai das '_Application_Objekt in der Fehlermeldung zeigt auf' Application', das richtig als solches erkannt wird; Ich würde mich wundern, wenn ich mit "ThisWorkbook" etwas verändern würde, da es genau der gleiche Objektzeiger ist. –