2011-01-17 3 views
1

この情報を見つけることができません:実際の値ではなく、これら2つのタイプのリストにラベルを表示できますか?もちろん、ラベルが選択されると、セルまたはコンボボックスの値(フォームコントロールとして)が実際の値を取得します。Excel 2003のコンボボックス/検証データリストの値とラベル

例: *データプロダクト< ------> 10 製品B < ------> 11 商品C < ------> 22

コンボボックス示しています。私が選択した場合、製品A、製品B及び製品C は、AIは、事前に22値

ありがとう10値、B 11値およびCを得る

Miloud B.

答えて

2

これを行う典型的な方法は、ルックアップテーブルを用意することです。数式で値を取得するために使用できるVLOOKUP(部分名)のような関数があります。私は自分の仕事でこういうことをして、別のスプレッドシートにルックアップテーブルを作成してから、メインのルックアップ機能を呼び出しました。

マクロを使用することもできますが、それは私の意見では現在の問題についてはあまりにも厄介です。

+0

ヒントありがとうございます。 イベント私の場合は適切ではないので、これは避けたい解決策です。しかし、あなたはマクロを使って可能であると言いますが、どのように進むでしょうか?私は実際にどのように表示されないので – CoolStraw

+0

それは私がVBAを使用して可能であることを意味します。 Alt + F11を押すと、Visual Basic環境に移動します。私はプログラムでそれを行う方法があると確信しています。たとえば、誰かが "データプロダクトA"を選択すると、適切なセルに数値を入力するフックをVBAに含めることができます。しかし、依然としてルックアップテーブルが適切な解決策に見えます。関連するセルはルックアップ式で予めプログラムすることができる。 – ktm5124

+0

さようなら。 私は説明フィールドを持っているのでルックアップテーブルを避けようとしていましたが、今私はどのようにそれをやろうとしていました。アイテムとしてID-Descriptionを使用し、選択が行われるたびにIDを抽出するために値を解析します。ありがとう、男;) – CoolStraw

1

データ検証:1行に2つの値を設定することはできません。ルックアップテーブルを使用して、ある値を別の値に変換することができます。または、「ProductA_10」のような値を組み合わせて、数式を使用して必要な場所で「10」を抽出することもできます。

フォームコンボボックス:これもオプションが限られており、あなたが望むものに比べてDVは何も提供していません。

ツールボックスコンボボックス:これは、あなたが望むものを何でもすることができます。 2番目の列を非表示にするには、ColumnCountプロパティを2に、BoundColumnプロパティを2に、ColumnWidthsプロパティを "1; 0"に設定します。私はA1でProductA-Cを持っていた場合:A3とB1で10-12:B3を、私はコンボボックスにするシートのモジュールで

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プロパティを必要な値の列に設定しているため、コンボボックスのValueプロパティを使用できます。

関連する問題