Ich habe eine benutzerdefinierte Funktion (UDF), die ich geschrieben habe und die manchmal eine Weile dauert. Das Arbeitsblatt ist so eingestellt, dass es nur manuell aktualisiert wird. Ich möchte den Fortschritt in der Statusleiste anzeigen, wann immer die Funktion ausgeführt wird, damit sie ausgeführt wird.Die Statusleiste wird nicht aktualisiert, wenn Application.StatusBar innerhalb einer benutzerdefinierten Funktion verwendet wird
Das Problem ist, dass innerhalb von Funktionen Application.StatusBar nicht zu funktionieren scheint. Innerhalb von Subs kann ich es gut funktionieren (zum Beispiel this works), aber innerhalb von Funktionen tut es einfach nicht. Ich habe den Code Zeile für Zeile durchlaufen, aber die Statusleiste wird immer noch nicht aktualisiert, und es werden keine Fehler ausgegeben.
Gibt es etwas, das verhindert, dass Funktionen mit der Statusleiste funktionieren?
Ich verwende Excel 2016 auf Win10.
EDIT: Hier ist der aktuelle Anzeige Code, mit Kontext aus der umgebenden Programmierung:
Function getCost(parameters)
dim variables
dim bOldStatusBar as Boolean
<web query begins>
bOldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "Calculating prices between " & Origin & " and " & Destination & "."
DoEvents
<clicking buttons in IE>
Application.StatusBar = "Starting Data Import..."
<clicking buttons in IE>
Application.StatusBar = "Macro 20% Complete"
etc...
<clicking buttons in IE>
Application.StatusBar = "Macro 100% Complete"
Application.StatusBar = False
Application.DisplayStatusBar = bOldStatusBar
End Function
Eine Funktion wird normalerweise für Berechnungen verwendet, um die Statusleiste nicht zu ändern – Davesexcel
@Davesexcel es tut Berechnungen auch; Ich möchte nur ein paar einfache Nachrichten in der Statusleiste anzeigen, um den Fortschritt während der Berechnung anzuzeigen. – Chilangosta
Wie sieht der Code aus? – BruceWayne