2017-06-30 3 views
0

私は毎朝Windowsタスクスケジューラのタスクを使用して開くVBスクリプトファイルを持っています。スクリプトは、MS Excelを開き、ブックに格納されているマクロを実行します。問題は、VBスクリプトファイルを使用してマクロをキックオフするときと、ブックを自分で実行するときとで、マクロが異なって実行されることです。具体的には、VB Scriptファイルからマクロを実行すると、「Refresh All」はすべてのデータ接続を実際にリフレッシュしないことがわかります。ブック自体からマクロを実行すると正常に動作します。私はこのVB ScriptでMS Excelが正しく開かれ、「すべてリフレッシュ」が正しく機能するようにするために、何かが欠けていると思っています。明らかにこのVBスクリプトで間違っているものは何ですか?MS Excelのマクロは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 

答えて

0

あなたがデータベースからデータを取得するためのリフレッシュをしようとしているが、スクリプトを実行した後に手動でExcelファイルを開いたときに、このスクリプトからの新しいデータが表示されていないようです。

変更後は、Excelファイルを保存する必要があります。

ObjExcel.Save 
+0

ありがとうございました。私は実際には、データセットのうちの1つ(ファイルを開くときのメインのもの)に変更を見ていますが、残りのものは変更していません。それは奇妙なことです。データ接続の1つのみが表示されているかのようです。 – AGryckiewicz

+0

これは、呼び出しているコードに何かある可能性があります。共有できるコードはありますか? – jeffld

0

もう1つの可能性は、VBScriptからリフレッシュを実行することです。

ObjExcel.Application.ActiveWorkbook.RefreshAll 
関連する問題