50

Excel でスプレッドシート データを取得して、セルの値を変更する手間をかけずに、VBA 内からそれ自体を再計算するにはどうすればよいでしょうか?

4

6 に答える 6

61

次の行でうまくいきます。

ActiveSheet.EnableCalculation = False  
ActiveSheet.EnableCalculation = True  

編集: この.Calculate()方法はすべての機能で機能するわけではありません。アドイン配列関数を使用してシートでテストしました。.CalculateFull()私が使用している生産シートは非常に複雑なので、メソッドをテストしたくありませんが、うまくいくかもしれません。

于 2008-09-30T18:54:58.970 に答える
19

これでうまくいくはずです...

'recalculate all open workbooks
Application.Calculate

'recalculate a specific worksheet
Worksheets(1).Calculate

' recalculate a specific range
Worksheets(1).Columns(1).Calculate
于 2008-09-30T19:26:59.470 に答える
8

場合によっては、Excel が問題を起こし、数式を再適用するためにキックスタートが必要になることがあります。これは、カスタム式を使用している場合に発生することがあります。

次のスクリプトがあることを確認してください

ActiveSheet.EnableCalculation = True

選択式を再適用します。

Cells(RowA,ColB).Formula = Cells(RowA,ColB).Formula

これは、必要に応じてループできます。

于 2013-09-04T19:11:12.783 に答える
6

あなたも試すかもしれません

Application.CalculateFull

また

Application.CalculateFullRebuild

アクティブなワークシートだけでなく、開いているすべてのワークブックを再構築してもかまわない場合。(CalculateFullRebuild依存関係も再構築します。)

于 2008-09-30T19:52:04.137 に答える