1

Excel ワークシートから VBA 関数を呼び出しています。VBA 関数のコード内のセルを変更すると、Excel はその関数を再度実行しようとします (そして 2 回目の反復で再び ...)

例: コードがある場合:

Function test() As Variant
    Range("A1") = 1
    test = "test"
End Function

"=test()"どこでも使用すると、 が返され#VALUE!ます。デバッグは、A1 を更新すると、test() を再実行しようとすることを示します。

Excelがこれを行うのを防ぐことはできますか? たとえば、「この機能を使い終えるまで数字を更新しないでください」と言っていますか? フラグを試しApplication.Calculationたり、外部の並行性チェックを行ったりしましたが、うまくいかないようです...

4

3 に答える 3

0

試す:

Function test() as Variant
test="test"
End Function
于 2013-11-06T23:39:01.233 に答える
-1

A1 または関数を変更したときに関数の再実行を停止し、#Value を返すのを停止する方法に関する特定の質問に答えるには:
1. Excel ユーザー インターフェイス (数式 --> 計算オプション) を使用して、計算モードを手動に変更します。
2. 次のように関数にエラー トラップを追加します。

Function test() As Variant
    On Error Resume Next
    Range("A1") = 1
    test = "test"
End Function

すでに述べたように、関数は A1 の値を変更しません

于 2013-11-07T00:10:03.570 に答える