Ich habe erstellt VBA-Code, der ein Excel-Blatt aktualisiert, aktualisiert die Datenverbindung und speichert das Excel-Blatt.Capture/Read Nachricht in der Excel-Anwendung Statusleiste angezeigt
Das Problem: Während die Datenverbindung immer noch aktualisiert wird, wechselt der VBA-Code zum nächsten Schritt von Speichern des Excel, und ein Popup-Fenster mit der Aufforderung zum Abbrechen der Aktualisierung wird angezeigt (was nicht der Fall sein sollte) weil die Aktualisierung stattfinden muss und eine Benutzereingabe den Zweck des VBA-Codes vereitelt. Im Folgenden ist ein Ausschnitt:
wkb.Connections("Connection2").Refresh
While (InStr(1, Application.DisplayStatusBar, "Running background query") > 0)
Wend
wkb.Save
wkb.RefreshAll
While (InStr(1, Application.StatusBar, "Running background query") > 0)
Wend
wkb.Save
Frage: Wie kann ich diesen Text in der Statusleiste erfassen, so dass ich kann warten, bis es verschwindet? Application.StatusBar tut nicht den Trick.
Würde ein 'DoEvents' Befehl statt einer' While..Wend' Schleife arbeiten? https://support.microsoft.com/en-us/kb/118468 –
Die einfachste Lösung ist, die Hintergrund-Abfrage-Option in den Verbindungseigenschaften zu deaktivieren, wenn es verfügbar ist. – Rory
Ihre erste überprüft, ob die Statusleiste angezeigt wird 'While Application.StatusBar =" Testen von Ddddddd ": DoEvents: Wend' –