標題:
[發問]
UserForm內怎麼做查尋清單?
[打印本頁]
作者:
kkooo15
時間:
2019-7-8 13:37
標題:
UserForm內怎麼做查尋清單?
我想要在UserForm內做查尋清單。
在UserForm2查好資料"廠商編號"
[attach]31005[/attach]
點二下後UserForm1"廠商編號"就會有那筆資料
[attach]31004[/attach]
作者:
kkooo15
時間:
2019-7-11 10:31
自己找到方法解開了
[attach]31014[/attach]
UserForm 樣式先改成這樣
Dim Sh As Worksheet, d As Object, d2 As Object, d3 As Object
公式如下
Private Sub CommandButton1_Click()
If TextBox1.Text <> "" Then
'將 TextBox1 資料放入 TBox1
UserForm2.TBox1.Text = TextBox1.Text
'將 TextBox1 資料放入 TBox1
Unload UserForm1
'關閉表單
Else
End If
End Sub
Private Sub UserForm_Initialize()
Dim i As Single, Rng As Range
Set Sh = Sheets("合約資訊")
'宣告 SH = Sheets("合約資訊")
Set d = CreateObject("scripting.dictionary")
'宣告 d = 建立並傳回 ActiveX 物件 建立一個 Dictionary物件
Set Rng = Sh.Cells(5, "E")
'SH = Sheets("客戶資料") Rng =儲存格 Cells(第5欄,C列)
Do While Rng <> ""
'Rng = 儲存格 Cells(第5欄,C列) 不等於 空白
If d.exists(Rng.Value) = False Then
'
Set d(Rng.Value) = Rng
Else
Set d(Rng.Value) = Union(Rng, d(Rng.Value))
End If
Set Rng = Rng.Offset(1)
Loop
ComboBox1.List = d.KEYS
'ComboBox1 等於 d KEYS
TextBox1 = ""
'TextBox1資料清除
End Sub
Private Sub ComboBox1_Change()
Dim R As Range
TextBox1 = ""
Set d2 = CreateObject("scripting.dictionary")
'd2 = 建立並傳回 ActiveX 物件 建立一個 Dictionary物件
For Each R In d(ComboBox1.Value).Offset(, -1).Cells
'ComboBox1的資料找到儲存格後值 -1列
If d2.exists(R.Value) = False Then
'如果 d2 的值是真就
Set d2(R.Value) = R
'Dictionary物件內的
Else '否就
Set d2(R.Value) = Union(R, d2(R.Value))
'd2內的值 等於 Union內的值
End If
Next
ComboBox2.Clear
'ComboBox2資料清除
ComboBox2.List = d2.KEYS
'ComboBox2 等於 d2 KEYS
End Sub
Private Sub ComboBox2_Change()
TextBox1 = ""
If ComboBox2.ListIndex > -1 Then TextBox1.Text = Sh.Cells(d2(ComboBox2.Value).Row, "F")
'F欄
'ListIndex = -1 值不在List中
End Sub
複製代碼
作者:
jeffrey628litw
時間:
2019-7-12 18:58
回復
1#
kkooo15
版主您好,這2個檔案(裡面有如下面2層以及5層的 Listbox 給您參考看看。
[attach]31024[/attach]
檔案下載:[attach]31025[/attach]
作者:
kkooo15
時間:
2019-7-12 19:51
回復
3#
jeffrey628litw
下來試看看,非常感謝。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)