2016-12-29 14 views
0

他のブックを開き、電源クエリと電源ピボットで作成された接続をリフレッシュするWorkbook_Openマクロを持つExcelブックがあります。このワークブックは毎日午前7時30分にタスクスケジューラによって開かれます。Excel VBA Powerクエリタスクスケジューラ開く

問題は、タスクshedulerがワークブックを開くと、Power QueryとPower Pivotが正しくロードされる前にマクロが実行され、場合によっては接続の更新によって「Microsoft.Mashup.Oledb.1 not registered」というエラーが発生することです。

ワークブックを手動で開くと、すべて正常に機能します。タスクが実行される前にExcelを開くと、アドインが既にロードされているため、これも機能します。

Power QueryとPower Pivotを読み込み、残りのコードを実行する方法がありますか?

また、私は最初にすべてのアドインrealoadしてみました:

For Each CurrAddin In Excel.Application.AddIns 
    If CurrAddin.Installed Then 
     CurrAddin.Installed = False 
     CurrAddin.Installed = True 
    End If 
Next CurrAddin 

をしかし、それはここで働いていないようです。

ありがとうございました。

答えて

0

問題の説明に基づいて、タスクスケジューラでこのブックを開く前に、タスクスケジューラからExcelを起動するのはどうですか?おかげ

0

が、モジュールの先頭にこれを追加します。

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

その後、Workbook_Open関数の先頭に

Application.DoEvents 'optional 
Sleep(5000) ' or 10000 for 10 seconds 
Application.DoEvents 'optional  
を追加
関連する問題