私は商品と株数のマスターリストを持っていますが(下の画像を参照)、株式数が(別のシート上で)これを行うための最善の方法は何1リストオブジェクトが選択されたときに値を変更する方法
を差し引い? (I VBAの疲れを少しあまりにも遠く取得していない)
編集:ここでは
は私の心が働いて、それを想像する方法を次のとおりです。 How I picture how it would work
私は商品と株数のマスターリストを持っていますが(下の画像を参照)、株式数が(別のシート上で)これを行うための最善の方法は何1リストオブジェクトが選択されたときに値を変更する方法
を差し引い? (I VBAの疲れを少しあまりにも遠く取得していない)
編集:ここでは
は私の心が働いて、それを想像する方法を次のとおりです。 How I picture how it would work
基本的なVBAの例。
Worksheet_Change
イベントは、ドロップダウンを含むシート上にある必要があります。
変更されたセルのアドレスがドロップダウンのアドレスかどうかを確認するだけです。あなたは名前付き範囲を使うことができますし、私が以下で行ったように静的アドレスを使うこともできます。
私は参照可能なItems
という名前の範囲をリストに与えました。
それは別の用紙に、あなたが使用する必要がありますのでご注意くださいSheets("SheetName").Range("Items")
私も、リスト内の値を確認するために、単純なFor Each
ループを使用 - それは辞書を使用するのに十分な大きさ得れば、それは良いかもしれ、バリアント配列、またはFind
。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$H$4" Then
Dim c
For Each c In Range("Items")
If c = Target.Value Then
c.Offset(0, 1).Value = c.Offset(0, 1).Value - 1
Exit For
End If
Next c
End If
End Sub
ただ、 "これは、セルのドロップダウンが他の項目、4-1、4である" と言う 'IF()'式を使うのか?何を試しましたか?なぜVBAが必要ですか? – BruceWayne
ようこそへスタックオーバーフロー。この問題を解決するには、最新ではない試みを示してください。通常、コードを修正するのは、他の人の解答を読むよりも有益です。 https://stackoverflow.com/help/how-to-ask – Spangen
@BruceWayneを参照してください.4は静的ではありませんが、私はそれをどのように処理するか分かりません。私が細胞を参照することができなければ?今はそれを試してみてください – Josh