1

ユーザーが [Refresh] / [Refresh All] ボタンをクリックすると、Excel は Workbook 内の各 (または選択された) QueryTable に対して refresh メソッドを呼び出しているように見えます。ただし、QueryTable の BeforeRefresh イベントと AfterRefresh イベントをリッスンしても、ここではあまり役に立ちません。ワークブック内のすべての QueryTables が更新された後 (それぞれ、選択されたすべての QueryTables の後) に何かを実行する必要があるためです。

これを達成する方法はありますか?その更新ボタンをマウスでクリックするのを何とか聞くことは可能でしょうか?

4

2 に答える 2

0

私はVSTOを使用していませんが、調査します:

  • 0 に設定されたグローバル変数 (またはワークブック プロパティ) を作成します。
  • AfterRefreshイベントでプロシージャを呼び出す
  • このプロシージャは、カウンタをインクリメントします
  • カウンターが QueryTables の合計数 (または選択した合計数) に達したら、必要な操作を行い、カウンターを 0 にリセットします。

Success毎回引数をチェックして、選択した QT がすべて正常に更新された場合にのみコードが実行されるようにすることもできます。

于 2013-07-24T19:48:57.243 に答える