Excel VBA:別のコンボボックスの選択に基づいてコンボボックス(cbo)を作成しようとしています。私は自分のコードを完成させる方法を理解できません。私が見つけたものはすべて近くにありますが、そこにはあまり行きません。Excel vba動的にコンボボックスを作成
最初のcbo選択はcstmr名です。これはcstmrIdとcstmrNmを使用するテーブルから移入します。名前はcboに設定されますが、cstmrIdはバインドされます。
2番目のcboはcstmrの場所です。 cstmrIdを使用して最初のcboで選択されたcstmrの場所だけにドロップします。cstmrの場所は、 "tblCstmrLoc"という名前のテーブル内の別のwkshtで見つけられます。ここで、列1はcstmrId、列2はcstmrLocテーブルはこれらの2つの列よりも大きい。
私はそれぞれwhileループとdo whileループを混乱させましたが、最初のドロップダウンで選択されたcstmrIdにループを制限する方法がありませんでした。ここ
は、私がこれまで持っているものです。
Private Sub cboCstmr_Change()
Dim CstmrId As Integer
Dim Rng As Range
CstmrId = Me.cboCstmr.ListIndex + 1
Set Rng = Range("LISA.xlsm!tblCstmrLoc")
Do While Rng.Value = CstmrId
cboCstmrLoc.AddItem ActiveCell.Offset(0, 1).Value
MsgBox ActiveCell.Offset(0, 1).Value
Loop
End Sub
は右方向に任意の助けを感謝しています。
'tblCstmrLoc'は実際のテーブルですか?何のワークシートですか? –
これは、 "Locations"と呼ばれるwkshtのテーブルという名前の範囲です。 CstmrIdは、 "Customers"というwkshtに由来し、CstmrをCstmrLocにリンクします。顧客と場所の間には1対1の関係があります。 – Trekkin
最終的な作業コードは次のとおりです。 – Trekkin