セルに一度だけ計算させる方法


2

N29ストリーミングデータに基づいていくつかの値を計算するセルがあります。cell Q29で条件が満たされると、計算値または最終値がcellに渡されO29、どちらのセルでも計算されなくなります。

例えば:細胞場合Q29= yは、その後O29の最後の計算に等しくはならないN29(もはや計算)、及びN290に設定する必要があり、もはや計算しません。


VBAソリューションを受け入れていますか?
Excellll

はい、必要な場合。何でも大いに評価されます。
マルコ

Q29に式はありますか?もしそうなら、それが「y」に達したら、式を維持する必要がありますか?N29のすべての計算をマクロに移動し、Q29でのテストを完全にスキップすることもできますが、それは計算についての詳細を知ることを意味します。定期的にデータを
更新し

Q29には式がありません。ここに私が持っているものがあります:セルQ29はyesまたはnoのいずれかです。yesまたはnoにより、N29 = IF(OR(AND(G29 = "s"、G32 = "b"、Q29 = "y"、Q32 = "y")、AND(G29 = "b"、 G32 = "s"、Q29 = "y"、Q32 = "y"))、0、((L29 * M29)-(I29 * M29))/ L29)----そして他の式セル0 = IF(N29 = 0、((L29 * M29)-(I29 * M29))/ L32 +((L32 * M32)-(I32 * M32))/ L32)---計算ができることに同意しますマクロに移動しました。でもどうやって?ありがとう!
マルコ

これらのデータエントリのいずれか、またはそれらはすべてストリーミングされ、計算は今すぐリフレッシュでトリガーされますか?
datatoo

回答:


0

ワークシートのコード領域に次のイベントマクロを含めます。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Q29 As Range
    Set Q29 = Range("Q29")
    If Intersect(Target, Q29) Is Nothing Then Exit Sub
    If Q29 <> "y" Then Exit Sub
    Application.EnableEvents = False
        Range("O29").Value = Range("N29").Value
        Range("N29").Value = 0
    Application.EnableEvents = True
End Sub

これを機能させるにはマクロを有効にする必要があります!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.