重複の可能性:
別の選択リストに基づいて選択リストを動的に更新する
別のユーザー選択に基づいてドロップダウン リストを埋めるのに苦労しています。それに関連するものをオンラインで見つけることができません次のテーブルを含むlookupDeptというワークブックがあります。
A B
== ==============================
BS Business School
CD Design and Technology
CG Chemical Engineering
CM Chemistry
CO Computer Science
CV Civil and Building Engineering
ここで、列 Aには定義された名前deptCodeがあり、列 Bには定義された名前deptNameがあります。次のテーブルを含むlookupModuleという 2 番目のワークブックがあります。
A B C
====== ================================================== ==
BSA005 Organisational Behaviour BS
BSA007 Skills for Study BS
CGA001 Fluid Mechanics I MEng & BEng Status CG
CGA002 Stagewise Processes CG
CMA001 Energetics and Rates of Change CM
CMA002 Structure and Reactivity in Inorganic Chemistry CM
COA101 Essential Skills for Computing CO
COA107 Logic and Functional Programming CO
CVA001 Communication CV
CVA002 Fluid Mechanics CV
フォームのcbo_moduleCodeを更新して、 lookupDeptの列 AがlookupModuleの列 Cと一致する範囲を選択しようとしています。これは私が使用しているコードです:
したがって、ユーザーがフォームでBS - Business School ( lookupDeptワークブックから抽出されたもの)を選択した場合、 lookupModuleワークブックの列 C にBSを含むすべてのフィールドを選択する必要があります。これは、これまでに使用したコードです。
Private Sub UserForm_Initialize()
Dim c_deptCode As Range
Dim c_deptName As Range
Dim deptCodes As Variant
Dim deptNames As Variant
Dim ws_dept As Worksheet
Dim ws_misc As Worksheet
Set ws_dept = Worksheets("lookupDept")
Set ws_misc = Worksheets("lookupMisc")
' Assign each range to an array containing the values
deptCodes = Choose(1, ws_dept.Range("deptCode"))
deptNames = Choose(1, ws_dept.Range("deptName"))
' Create deptcode+deptname cbo
For i = 1 To ws_dept.Range("deptCode").Rows.Count
CombinedName = deptCodes(i, 1) & " - " & deptNames(i, 1)
cbo_deptCode.AddItem CombinedName
Next i
End Sub