2017-01-17 3 views
0

数式が更新されていない問題があります(私は意図的に手動計算を行っています)。特に、複雑な依存関係を持つ数式です。Excel - 計算を行わない関数の依存性

Cell1: "=Cell2" 
Cell2: "IFERROR(FindData(X1, X2))" 

FindData所定の範囲(RangeXYZ)にIndex(Match(X1),Match(X2))を使用することを、私が書いたVBA関数です。

この範囲には、外部データサービス(Excelデータ接続ではなく、別のカスタムvba式)に接続する多数の数式があります。

私がCell1を計算するとき、Excelは下流のものを計算しません。 RangeXYZを強制計算してからCell1、次にCell1を再計算する方法が必要です。

おかげ

編集:私はすでに、シートにセル1が上に含まれています

Private Sub Worksheet_Calculate() 
    Application.calculatefull 
End Sub 

が、私は、これは計算の無限ループで終わる見つけます。私はまたシートSheets( "Sheet1")を指定しようとしました。計算しますが、それはうまくいかないようです。

Ctrl-Alt-F9は動作しますが、過度の時間がかかり過ぎる時間がかかります。

+0

おかげでこれを試みることができます! – keynesiancross

+6

'FindData'の最初の行に' Application.Volatile = True'を入れようとしているのでしょうか? –

+0

@VincentG:あなたは私にそれを打つ! ;) – R3uK

答えて

0

RangeXYXを3番目のパラメータとして渡すことを強くお勧めします。 Excel計算エンジンは、ワークブックのテストの依存関係を調べ、偽の最適化でそれを欺くのではなく、手助けする必要があります。あなたが本当にあなたの入札を行うにExcelの計算エンジンをbrowbeatしたい場合

あなたはあなたのイベントハンドラで編集R3uKため

Option Explicit 

Private Sub Worksheet_Calculate() 
    Me.Range("RangeXYZ").Calculate 
End Sub 
関連する問題