Wie man eine Verzögerung in VB-Script, lassen Sie Excel-Daten aktualisieren

Ich habe eine Excel-Datei, die lädt automatisch die Daten aus einer externen Datenbank (über eine Daten-Verbindung zu einer Access-Datenbank, die wiederum verbunden mit einer Sharepoint-Tabelle). Ich brauche, um den Prozess zu automatisieren:

  • öffnen der Excel-Datei
  • zu warten, für die Daten zu aktualisieren
  • läuft ein makro (in dieser Datei)
  • schließen der Datei

Das Skript, das ich habe, ist:

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("excel spreadsheet.xlsm")
WScript.Sleep 1000 * 60 * 5
objExcel.Run "macro_name"
objWorkbook.close False
objExcel.Application.Quit

Jedoch, egal welche Verzögerung ich Sie WScript.Schlaf, es aktualisiert nicht die Daten, sondern führt das makro auf die Daten, die bereits in der Tabelle. Könnte mir jemand helfen, bitte!!!


LÖSUNG

Am Ende (und mit dem Vorteil von ein paar Tagen " live-testing), die folgenden scheint die sauberste und effizienteste:

  1. Entfernen der "WScript.Schlafen 1000 * 60 * 5" Linie aus dem VB-Skript insgesamt
  2. In Excel clearing "Aktualisierung im Hintergrund Aktivieren" - Kontrollkästchen in den Eigenschaften für jede Verbindung
  3. Fügen Sie folgende Zeile in das makro, bevor Sie die Haupt-code

    ActiveWorkbook.RefreshAll

Vielen Dank an Philip und Santosh für die Antworten unten zeigen mich in die richtige Richtung!

InformationsquelleAutor r-q | 2013-05-23

Schreibe einen Kommentar