Board logo

標題: [發問] 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 樣式先改成這樣
  1. Dim Sh As Worksheet, d As Object, d2 As Object, d3 As Object

  2. 公式如下
  3. Private Sub CommandButton1_Click()
  4. If TextBox1.Text <> "" Then
  5.     '將 TextBox1 資料放入 TBox1
  6.     UserForm2.TBox1.Text = TextBox1.Text
  7.     '將 TextBox1 資料放入 TBox1
  8.    
  9.     Unload UserForm1
  10.     '關閉表單
  11.     Else
  12.     End If
  13. End Sub

  14. Private Sub UserForm_Initialize()
  15.     Dim i As Single, Rng As Range
  16.     Set Sh = Sheets("合約資訊")
  17.     '宣告 SH = Sheets("合約資訊")
  18.     Set d = CreateObject("scripting.dictionary")
  19.     '宣告 d = 建立並傳回 ActiveX 物件 建立一個 Dictionary物件
  20.     Set Rng = Sh.Cells(5, "E")
  21.     'SH = Sheets("客戶資料") Rng =儲存格 Cells(第5欄,C列)
  22.     Do While Rng <> ""
  23.     'Rng = 儲存格 Cells(第5欄,C列) 不等於  空白
  24.         If d.exists(Rng.Value) = False Then
  25.             '
  26.             Set d(Rng.Value) = Rng
  27.         Else
  28.             Set d(Rng.Value) = Union(Rng, d(Rng.Value))
  29.         End If
  30.         Set Rng = Rng.Offset(1)
  31.     Loop
  32.     ComboBox1.List = d.KEYS
  33.     'ComboBox1 等於 d KEYS
  34.     TextBox1 = ""
  35.     'TextBox1資料清除
  36. End Sub
  37. Private Sub ComboBox1_Change()
  38.     Dim R As Range
  39.     TextBox1 = ""
  40.     Set d2 = CreateObject("scripting.dictionary")
  41.     'd2 = 建立並傳回 ActiveX 物件 建立一個 Dictionary物件
  42.     For Each R In d(ComboBox1.Value).Offset(, -1).Cells
  43.         'ComboBox1的資料找到儲存格後值 -1列
  44.         If d2.exists(R.Value) = False Then
  45.         '如果 d2 的值是真就
  46.             Set d2(R.Value) = R
  47.             'Dictionary物件內的
  48.         Else '否就
  49.             Set d2(R.Value) = Union(R, d2(R.Value))
  50.             'd2內的值 等於 Union內的值
  51.         End If
  52.     Next
  53.     ComboBox2.Clear
  54.     'ComboBox2資料清除
  55.     ComboBox2.List = d2.KEYS
  56.     'ComboBox2 等於 d2 KEYS
  57. End Sub

  58. Private Sub ComboBox2_Change()
  59.     TextBox1 = ""
  60.     If ComboBox2.ListIndex > -1 Then TextBox1.Text = Sh.Cells(d2(ComboBox2.Value).Row, "F")
  61.     'F欄
  62.     'ListIndex = -1 值不在List中
  63. 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/)