2017-04-13 44 views
0

My Excelは、データプロバイダからAddInを使用してデータをダウンロードできます。上の検索時間のカップルを過ごした後C#のExcel COMアドインの呼び出し方法

Application.COMAddIns("PowerlinkCOMAddIn.COMAddIn").Object.RefreshWorkbook 

:プロバイダのヘルプページから 、私はVBAで次のコマンドを呼び出すことで、データを「更新」することが可能であることを見出した(とテスト)インターネット私はC#を使って、まったく同じメソッドを呼び出す方法についての答えを見つけることができませんでした。

私はこれらのスプレッドシートの多くを定期的に更新する必要があるため、プロセスを自動化しようとしています。

  1. おそらくこれを達成する方法の1つは、上記のコマンドでスプレッドシートを開いて呼び出すたびに新しいマクロを挿入することですが、可能であればC#で直接呼び出すことをお勧めします。
  2. 第2の解決方法は、Pythonまたは別の言語を使用して のデータをCSV形式でダウンロードし、スプレッドシートをCSV にリンクすることですが、このプロセスも過度のようです。

事前に感謝します。

+1

ダイナミックobj =アプリケーション...オブジェクト。 obj.Whatever(); –

+0

ありがとうございました。私はあなたの例に従ってコードを変更しました。動的obj = Application.COMAddIns( "PowerlinkCOMAddIn.COMAddIn")。オブジェクトですが、obj.RefreshWorkbook()を実行しようとすると、メソッドが存在しないことが示されます。何か案が? – stratar

+0

私は、回避策を打ち上げました。プログラムを使ってVBAモジュールにSubプロシージャを挿入(注入)してから、上記のコードを呼び出します。私がこのソリューションを使用して直面した問題は、マクロを実行しようとしたときにエラー438が発生していたことです.Excelを開いた後、System.Threading.Thread.Sleep(10000);を使用してそれを取り除くことができました。これは、VBAコードを実行するときにCOMアドインがロードされていない可能性があるため、エラーが発生したことを意味します。だから、今質問はどうなりますか?「アクセスする前に、どのようにしてExcelのすべてのアドインがロードされているか確認するにはどうすればいいですか? – stratar

答えて

関連する問題