2016-04-15 11 views
1

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 
+0

Eine Funktion wird normalerweise für Berechnungen verwendet, um die Statusleiste nicht zu ändern – Davesexcel

+0

@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

+0

Wie sieht der Code aus? – BruceWayne

Antwort

0

einfach DoEvents hinzufügen nach der Statusbar zu aktualisieren.

+0

Leider, wie andere bereits gesagt haben, können Sie die StatusBar nicht über einen Funktionsaufruf aktualisieren.] (Https://support.microsoft.com/de-de/help/170787/description-of-limitations-of-custom-functions -in-Excel) – Chilangosta

Verwandte Themen