VBA 連動下拉式選單設定

請問連動式下拉式選單該如何製作,如圖檔例如;當ComBoBox1選擇A1時,則ComBoBox2下拉選單則會變成工作表2 A2欄位下方人員名稱小明1,小明2....,當我選擇B1時ComBoBox2下拉選單又會變成大明1,大明2....以此類推,請問是否有人可以幫小弟解答..謝謝!!
2019-08-23 13:33 #1
連動下拉式選單是不需要用到vba來處理的啊!
是有特殊用途嗎?



試試

Private Sub ComboBox1_Change()
Dim a As Range
Dim m, l As Integer

ComboBox2.Clear

m = Application.Match(ComboBox1.Text, Range("Sheet1!A1:D1"), 0)
l = Application.CountA(Columns(m))

For Each a In Range(Cells(2, m), Cells(l, m))
ComboBox2.AddItem a
Next
End Sub

Private Sub UserForm_Initialize()
Dim a As Range

For Each a In Range("Sheet1!A1:D1")
ComboBox1.AddItem a
Next
End Sub
因為最近對VBA介面設計非常喜歡,想所試看看能否使用VBA製作連動下拉清點,不過因上網找了所以介紹都只有單1下拉設計,然後自己怎麼寫都只能啟用單方設定,但真的非常感謝你..另外想問一下是否有推薦的VBA設計適合剛入門想學習的書籍嗎,我上網找了很多但不清楚那種比較合適
不用迴圈加資料的方法,請參考

Private Sub ComboBox1_Change()

Dim Lastrow As Integer
If ComboBox1.ListIndex > -1 Then
ComboBox2.Clear
Lastrow = Sheets("工作表1").Columns(ComboBox1.ListIndex + 1).End(xlDown).Row - 1
ComboBox2.List = Sheets("工作表1").Range("a2").Resize(Lastrow, 1).Offset(, ComboBox1.ListIndex).Value
End If

End Sub

Private Sub UserForm_Initialize()

ComboBox1.List = Application.Transpose(Sheets("工作表1").Range("a1:d1").Value)

End Sub
請問一下如果我姓名內容儲存格不是從A2開始的話(如圖檔),下方要改那裡才可以跟著改變範圍位置,因為我有試著修改很多地方但改姓名內容就會變的不會顯示所有名單,所以請問以下文法要改那裡才可以改變姓名內容範圍,另外假如我班別部份如果要在增加的話要如何修改才會加大範圍..謝謝!!

Private Sub ComboBox1_Change()

Dim Lastrow As Integer
If ComboBox1.ListIndex > -1 Then
ComboBox2.Clear
Lastrow = Sheets("工作表1").Columns(ComboBox1.ListIndex + 1).End(xlDown).Row - 1
ComboBox2.List = Sheets("工作表1").Range("a2").Resize(Lastrow, 1).Offset(, ComboBox1.ListIndex).Value
End If

End Sub
風城小方 worte:
如何修改才會加大範圍...(恕刪)


Private Sub ComboBox1_Change()

Dim Lastrow As Integer
If ComboBox1.ListIndex > -1 Then
Lastrow = Sheets("工作表1").Columns(ComboBox1.ListIndex + 3).End(xlDown).Row - 1
'出現資料的第一個欄位號碼
ComboBox2.List = Sheets("工作表1").Range("c2").Resize(Lastrow, 1).Offset(, ComboBox1.ListIndex).Value
'出現資料的第一個不含標題的儲存格名稱
ComboBox2.ListIndex = 0
End If

End Sub

Private Sub UserForm_Initialize()

ComboBox1.List = Application.Transpose(Sheets("工作表1").Range("c1:f1").Value)
'欄位範圍
ComboBox1.ListIndex = 0

End Sub
限制級
您即將進入之討論頁 需滿18歲 方可瀏覽。
提醒:內容可能因過於寫實、驚悚而令人感到不舒服,是否繼續觀看?

根據「電腦網路內容分級處理辦法」修正條文第六條第三款規定,已於該限制級網頁,依台灣網站分級推廣基金會規定作標示。
評分
複製連結