Excel-入力が削除されても、数式の出力値を永続的にする必要があります

アーメド・ナサー

M+電卓のボタンのようなものを作りたいです。

入力値を変更または削除したときに数式の出力値が上書きされないようにしたいのですが、代わりに新しい入力で数式で再び使用されます。うまくいけば、これは理にかなっています。

別の方法では、出力値を同じ式(単純な加算式)の新しい入力値で使用する必要があります。

ジョン・コールマン

おそらく、VBAを使用してこのようなことを行うことができますが、VBAを使用しないと(少なくとも、独自の問題がある循環参照を使用せずに)実行できるとは思いません。重要なのは、数式を含む各セルの状態のメモリを保持する静的辞書を使用することです。何かのようなもの:

Function PlusM(x As Double) As Double
    Static states As Object, state As Double, key As String

    If states Is Nothing Then
        Set states = CreateObject("Scripting.Dictionary")
    End If

    key = Application.Caller.Address

    If states.Exists(key) Then
        state = states(key)
    Else
        state = 0
        states.Add key, state
    End If

    state = state + x
    states(key) = state
    PlusM = state
End Function

私は置けば=PlusM(A1)A1が最初に空白の場合A2に、私はその後、A2は今、その値が表示されますA1に任意の値を入力した場合、A2は0が表示されます。次にA1の値を削除すると、A2はその値を保持します。次にA1に新しい値を入力すると、A2は古い値+ A1からの新しい値を表示します。辞書を使用すると、=PlusM()あるセルの状態が別のセルの状態に漏れることなく、さまざまなセルにインスタンスを作成できます

これは最も堅牢なソリューションではありません。状態の喪失が問題です。何かがプロジェクトをリセットした場合(ワークブックを閉じてから再度開くことを含む)、状態は保持されません。私はラインを交換して実験してきたstate = 0とのstate = Application.Caller.Value混合の結果で。これが問題である場合、WorkBook_Open()状態を復元するために何かが行われる可能性があることは間違いありません

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Excelの列がボタンでフィルタリングされたら、行を更新する必要があります。更新は、表示されているセルに値を挿入することに関するものです

分類Dev

Excelの数式を作成する必要があります*

分類Dev

結果が空白であっても、数式をコピーして値として貼り付けると、Excelが非表示の文字を挿入している可能性があります-どうすれば回避できますか?

分類Dev

それ自体がIF基準として使用されている数式の出力をExcelが返す方法はありますか?

分類Dev

Excel VBA:別の列に値がある限り、数式を実行します

分類Dev

入力されたすべてのセルを数式ではなく値に変更するExcelマクロ

分類Dev

Excel VBAは、#REFを使用してすべての行を削除する必要があります。値

分類Dev

Excel2013-数値を参照するために入力される年齢が必要

分類Dev

Excel2013-テキスト文字列としてのセル内の複数の数値。特定の値よりも小さい数値があるかどうかを識別する必要があります

分類Dev

値をExcelに挿入する必要があります。どうすればいいですか?

分類Dev

DataStudioで機能するようにExcelの数式を変更する必要があります

分類Dev

数式を含むセルをスキップして、直接データ入力が必要なセルに直接ジャンプするようにExcelを設定する方法はありますか?

分類Dev

Excelの数式を理解するのに問題があります

分類Dev

長時間のExcel数式は単純化する必要があります

分類Dev

Excelテーブルの列に数式/データを入力するためのループが必要

分類Dev

複数のExcel行を列に転置する必要があります

分類Dev

Excel-列Aの値が別のワークシートに入力されるたびに、2列の参照の列Bの値を貼り付けます

分類Dev

VBA:Excelの表示されているセルのみをループする必要があります

分類Dev

すべての値がExcelシートの数値よりも小さい列を非表示にするにはどうすればよいですか?

分類Dev

Excelでの入力に応じて異なる画像が表示されます

分類Dev

Excelの値では、数値として認識するためにセル内にEnterキーを押す必要があります

分類Dev

一定の行間隔でセルに特定の数値を入力できるExcel数式はありますか?

分類Dev

データが入力されるまで Excel に空白のセルを残す

分類Dev

データを数式としてExcelセルに入力できますが、結果の値のみを保持できますか?

分類Dev

Excel VBAがセルAに値を入力すると、セルBが自動的に変更されます

分類Dev

Excel、特定の列に入力されている値がシート2の列xの値と等しい場合、エラーがスローされます

分類Dev

同じセル内で最大値を見つけるためのExcelの数式には、右端の数値の値が複数あります

分類Dev

C#を使用してExcelに書き込みます。(呼び出されるたびにExcelに1つの値を入力する関数)

分類Dev

Excel-1から始まり、別の列の値が同じになるまで、列に増分する数値を入力する方法

Related 関連記事

  1. 1

    Excelの列がボタンでフィルタリングされたら、行を更新する必要があります。更新は、表示されているセルに値を挿入することに関するものです

  2. 2

    Excelの数式を作成する必要があります*

  3. 3

    結果が空白であっても、数式をコピーして値として貼り付けると、Excelが非表示の文字を挿入している可能性があります-どうすれば回避できますか?

  4. 4

    それ自体がIF基準として使用されている数式の出力をExcelが返す方法はありますか?

  5. 5

    Excel VBA:別の列に値がある限り、数式を実行します

  6. 6

    入力されたすべてのセルを数式ではなく値に変更するExcelマクロ

  7. 7

    Excel VBAは、#REFを使用してすべての行を削除する必要があります。値

  8. 8

    Excel2013-数値を参照するために入力される年齢が必要

  9. 9

    Excel2013-テキスト文字列としてのセル内の複数の数値。特定の値よりも小さい数値があるかどうかを識別する必要があります

  10. 10

    値をExcelに挿入する必要があります。どうすればいいですか?

  11. 11

    DataStudioで機能するようにExcelの数式を変更する必要があります

  12. 12

    数式を含むセルをスキップして、直接データ入力が必要なセルに直接ジャンプするようにExcelを設定する方法はありますか?

  13. 13

    Excelの数式を理解するのに問題があります

  14. 14

    長時間のExcel数式は単純化する必要があります

  15. 15

    Excelテーブルの列に数式/データを入力するためのループが必要

  16. 16

    複数のExcel行を列に転置する必要があります

  17. 17

    Excel-列Aの値が別のワークシートに入力されるたびに、2列の参照の列Bの値を貼り付けます

  18. 18

    VBA:Excelの表示されているセルのみをループする必要があります

  19. 19

    すべての値がExcelシートの数値よりも小さい列を非表示にするにはどうすればよいですか?

  20. 20

    Excelでの入力に応じて異なる画像が表示されます

  21. 21

    Excelの値では、数値として認識するためにセル内にEnterキーを押す必要があります

  22. 22

    一定の行間隔でセルに特定の数値を入力できるExcel数式はありますか?

  23. 23

    データが入力されるまで Excel に空白のセルを残す

  24. 24

    データを数式としてExcelセルに入力できますが、結果の値のみを保持できますか?

  25. 25

    Excel VBAがセルAに値を入力すると、セルBが自動的に変更されます

  26. 26

    Excel、特定の列に入力されている値がシート2の列xの値と等しい場合、エラーがスローされます

  27. 27

    同じセル内で最大値を見つけるためのExcelの数式には、右端の数値の値が複数あります

  28. 28

    C#を使用してExcelに書き込みます。(呼び出されるたびにExcelに1つの値を入力する関数)

  29. 29

    Excel-1から始まり、別の列の値が同じになるまで、列に増分する数値を入力する方法

ホットタグ

アーカイブ