2017-06-30 2 views
0

Ich habe eine VB-Skript-Datei, die ich jeden Morgen mit einer Aufgabe in Windows Taskplaner öffnen. Das Skript öffnet MS Excel und führt dann ein in einer Arbeitsmappe gespeichertes Makro aus. Das Problem ist, dass das Makro anders läuft, wenn ich die VB-Skript-Datei benutze, um das Makro zu starten, oder wenn ich es selbst aus der Arbeitsmappe starte. Ich finde speziell, dass "Alle aktualisieren" nicht alle Datenverbindungen aktualisiert, wenn ich den Makro aus der VB-Skriptdatei starte. Es funktioniert einwandfrei, wenn ich das Makro aus der Arbeitsmappe selbst ausführen. Ich denke, dass ich etwas in diesem VB-Skript verpasse, um sicherzustellen, dass MS Excel korrekt geöffnet wird und "refresh all" ordnungsgemäß funktioniert. Alles klar falsch mit diesem VB Script?MS Excel-Makro läuft anders als VB Script?

Dim ObjExcel, ObjWB 
Set ObjExcel = CreateObject("excel.application") 

ObjExcel.Application.Visible = True 

Set ObjWB = ObjExcel.Workbooks.Open("K:\Analytic Reporting\11.Projects\TonyAdHoc\Autorefresher\DashboardAutorefresher.xlsm") 

objExcel.Application.Run "DashboardAutorefresher.xlsm!Main" 

ObjWB.Close True 
ObjExcel.Quit 
Set ObjExcel = Nothing 

Antwort

0

Es scheint, dass Sie eine Aktualisierung zu tun versuchen, Daten aus einer Datenbank zu ziehen, aber Sie werden keine neuen Daten aus diesem Skript zu sehen, wenn Sie die Datei manuell Excel öffnen, nachdem das Skript ausgeführt wird.

Sie müssen die Excel-Datei speichern, nachdem Sie Änderungen vorgenommen haben.

ObjExcel.Save 
+0

Danke. Ich sehe tatsächlich die Änderungen an einem der Datensätze (der wichtigste beim Öffnen der Datei), aber nicht am Rest. Das ist seltsam. Es ist, als ob es nur eine der Datenverbindungen sieht. – AGryckiewicz

+0

Das könnte etwas im Code sein, den Sie anrufen. Hast du den Code für Main, den du teilen kannst? – jeffld

0

Eine andere Möglichkeit wäre, die Aktualisierung von VBScript durchzuführen.

ObjExcel.Application.ActiveWorkbook.RefreshAll