0

重複の可能性:
別の選択リストに基づいて選択リストを動的に更新する

別のユーザー選択に基づいてドロップダウン リストを埋めるのに苦労しています。それに関連するものをオンラインで見つけることができません次のテーブルを含む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の列 AlookupModuleの列 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
4

0 に答える 0