Excel 2003コンボボックス/検証データリストの値とラベル
-
12-10-2019 - |
質問
この情報を見つけることができません。実際の値ではなく、これら2つのタイプのリストにラベルを表示することは可能ですか?もちろん、ラベルが選択されると、セルまたはコンボボックスの値(フォームコントロールとして)が実際の値を取得します。
例: *データ製品A <------> 10製品B <------> 11製品<------> 22
コンボボックスショー:製品A、製品B、および製品Cを選択した場合は、10値を取得し、b 11値を、c 22値を取得します
前もって感謝します
Miloud B.
解決
これを行う典型的な方法は、ルックアップテーブルを持つことです。 vlookup(これは部分的な名前)のようなものという名前の関数があり、数式で値を取得できるようにします。私は自分の仕事でこのようなことをし、別のスプレッドシートにルックアップテーブルを作成し、メインのスプレッド機能と呼びました。
マクロを使用することもできますが、現在の問題については私の意見ではあまりにも気になります。
他のヒント
データ検証: :行ごとに2つの値を持つことはできません。ルックアップテーブルを使用して、ある値を別の値に変換できます。または、「Producta_10」などの値を組み合わせて、式を使用して「10」を必要な場所で抽出することができます。
フォームコンボボックス: :これにはオプションが限られており、DVが必要なことを実際には提供していません。
ツールボックスコンボボックス: :これはあなたが望むことを何でもすることができます。 ColumnCountプロパティを2に、BoundColumnプロパティを2に、列幅プロパティを「1; 0」のようなものに設定して、2番目の列を非表示にします。 A1:A3およびB1:B3で10-12にProducta-Cを持っている場合、標準モジュールでこのようなコードを使用してコンボボックスを入力します
Sub LoadCombobox()
Dim rCell As Range
For Each rCell In Sheet1.Range("A1:A3").Cells
Sheet1.ComboBox1.AddItem rCell.Value
Sheet1.ComboBox1.List(Sheet1.ComboBox1.ListCount - 1, 1) = rCell.Offset(0, 1).Value
Next rCell
End Sub
シートのモジュールでこのようなコードを作成して、セルに値を配置します(この例のF1)
Private Sub ComboBox1_Change()
Me.Range("F1").Value = Me.ComboBox1.Value
End Sub
コンボボックス内の新しい値が選択されると、F1が更新されます。 boundcolumnプロパティを希望する値で列に設定するため、コンボボックスの値プロパティを使用できます。