クライアントとIDを示すユーザーフォームに複数列のコンボボックスを生成する次のコードがあります。私は両方の列をクライアントとして生成しなければならず、複数回リストされていましたが、IDは一意です。VBA変数として複数列のコンボボックスから1つの列を使用
がMyAccount = UF_Format.CB_Account.Value
コードは現在、次のとおりです。私は新しいシートにクライアントの詳細をコピーすることができるように選択したフィルタシートを値を使用していますし、変数として選択された値を使用していますが
i = 2
For Each c In Range("D2", Range("D" & Rows.Count).End(xlUp))
CB_Account.AddItem Cells(i, 4).Value & " : " & Cells(i, 3).Value
i = i + 1
Next
コンボボックスの値が2つの列を連結しているために転倒します。実際には、私のコードがフィルタリングできるように、IDである2番目の値だけを引き出す必要があります。
ご協力いただければ幸いです。
これは、列4と列3にどのような値を設定できるかによって異なります。 3列目が常に3文字であると仮定できる場合は、ユーザーは右に移動できます。列4に文字のみが含まれていることがわかっている場合は、文字を無視してパターンを一致させ、残りを取ります。簡単な方法がない場合は、セパレータを変更することができます。 '|'にする。 – z32a7ul
ところで、私はこれを複数列のコンボボックスと呼んでいません。Excelシートの複数の列から連結された値だけです。 – z32a7ul