- 帖子
- 4901
- 主題
- 44
- 精華
- 24
- 積分
- 4916
- 點名
- 62
- 作業系統
- Windows 7
- 軟體版本
- Office 20xx
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-4-30
- 最後登錄
- 2025-3-14
               
|
8#
發表於 2016-4-29 23:43
| 只看該作者
本帖最後由 Hsieh 於 2016-4-29 23:56 編輯
回復 2# colinyang
直覺是Combobox3清單會依據Combobox1,Combobox2內容變動
選定後按下按鈕依序輸入- Public d2
- Private Sub ComboBox1_Change()
- ex
- End Sub
- Private Sub ComboBox2_Change()
- ex
- End Sub
- Private Sub ComboBox4_Change()
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- Set d2 = CreateObject("Scripting.Dictionary")
- fs = ThisWorkbook.Path & "\data.xlsx" '請將2檔案放在同一目錄
- Set databook = Workbooks.Open(fs)
- With databook.Sheets(ComboBox4.Text)
- For Each a In .Range(.[A2], .[A2].End(xlDown))
- d(a.Value) = "" 'A欄不重複清單
- d1(a.Offset(, 1).Value) = "" 'B欄不重複清單
- d2(a & a.Offset(, 1)) = IIf(d2(a & a.Offset(, 1)) = "", a.Offset(, 2), d2(a & a.Offset(, 1)) & "," & a.Offset(, 2)) 'A&B欄清單內容
- Next
- ComboBox1.List = d.keys
- ComboBox2.List = d1.keys
- End With
- databook.Close 0
- End Sub
- Private Sub CommandButton1_Click()
- Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(, 3) = Array(ComboBox1, ComboBox2, ComboBox3) '輸入資料
- End Sub
- Private Sub UserForm_Initialize()
- fs = ThisWorkbook.Path & "\data.xlsx" '請將2檔案放在同一目錄
- Set databook = Workbooks.Open(fs)
- For Each sh In databook.Sheets
- ComboBox4.AddItem sh.Name
- Next
- databook.Close 0
- End Sub
- Sub ex()
- mystr = ComboBox1 & ComboBox2
- If d2(mystr) <> "" Then ComboBox3.List = Split(d2(mystr), ",") 'Combobox3的清單
- End Sub
複製代碼 |
|