私は Excel の入力ワークブックを持っています。A には、内部ワークシートの参照とブルームバーグ関数に加えていくつかの計算フィールドに基づくいくつかの入力があります。
A から情報を取得する必要がある Excel 出力ワークブック B がありますが、B の vba 内でワークブック A を開くと、VBA が呼び出しを終了するまでリンク情報が更新されません。
A の入力の例、A には sheet1、sheet2、sheet3 が含まれています sheet1 のセルが必要です cells(1,1), cells(1,1) の内容は sheet2!cells(2,1), this sheet2!cells( 2,1) 別のタブからの参照またはブルームバーグ関数呼び出し入力に基づく計算フィールドである必要があります。
ワークブック A 内のすべてのリンクを最初に検証して、ワークブック B がすべての更新された情報を取得できるようにする方法はありますか。
私が試してみました
Application.Workbooks.Open FileName:=path_array(tmp), UpdateLinks:=3
Application.Calculate
Application.RTD.ThrottleInterval = 0
Application.Run "RefreshAllStaticData"
Application.Run "ConnectChartEvents"
Application.Run "RefreshData"
Application.Run "RefreshEntireWorkBook"
DoEvents
VBA Output looks like this:
A B C D E F G H I J
4.4% 2.1% 2.2% #VALUE! #VALUE! #VALUE! #VALUE! 11 5 #VALUE!
Manual like this:
A B C D E F G H I J
4.4% 2.1% 2.2% 3.1% 4.2% 5.5% 3.4% 11 5 8.0%
計算の一部を強制的に実行するには、VBA を使用して更新しますが、#Value を返します。追加の参照レイヤーを持つフィールドの場合。手動で開くと、すべてが 1 秒もかからずに自動更新されます。なぜこんなに差があるのか、ずっと悩んでいました。この入力が更新されるまで VBA をクロックする方法はありますか。前もって感謝します