0

セルに次のExcel関数を入力し、Enterキーを押すと、機能します。

"= T_DisplayReport(A1)"

しかし、VBAで次のように書くと:

Sheets("Sheet1").Cells(1, 1).Formula = "=T_LoadReport(""X"",""Y"",true)"
Sheets("Sheet1").Cells(1, 1).Calculate

Sheets("Sheet1").Cells(2, 1).Formula = "=T_DisplayReport(A1)"
Sheets("Sheet1").Cells(2, 1).Calculate    

それは動作しません。セルA1を上記のVBAにハードコーディングして、セルA1が認識され、関数が機能するようにするにはどうすればよいですか?

編集:A1には、データをフェッチしてローカルキャッシュに保存する別の関数が含まれています。T_DisplayReport()はセルA1を取得して、このデータを表示します。

4

1 に答える 1

1

使用しているExcelのバージョンによっては、Range.Calculateステートメントが非同期関数の依存関係を正しく処理しない場合があります。
最初のRange.Calculateを削除して、最後のrange.calculateをSheets( "Sheet1")。CalculateまたはApplication.Calculateに置き換えてみてください。

于 2012-07-02T17:43:24.203 に答える