返回列表 上一主題 發帖

[發問] UserForm內怎麼做查尋清單?

[發問] UserForm內怎麼做查尋清單?

我想要在UserForm內做查尋清單。
在UserForm2查好資料"廠商編號"

點二下後UserForm1"廠商編號"就會有那筆資料

廠商客戶資料-test.rar (42.35 KB)
excel學習中!築出夢想
https://www.youtube.com/channel/UCPAiRNsHX3k_omp0YDgfDiA

自己找到方法解開了
RIGHT1111.png
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
複製代碼
excel學習中!築出夢想
https://www.youtube.com/channel/UCPAiRNsHX3k_omp0YDgfDiA

TOP

回復 1# kkooo15


    版主您好,這2個檔案(裡面有如下面2層以及5層的 Listbox 給您參考看看。



  檔案下載: VBA - 實驗批專案管理.rar (322.18 KB)

TOP

回復 3# jeffrey628litw
下來試看看,非常感謝。
excel學習中!築出夢想
https://www.youtube.com/channel/UCPAiRNsHX3k_omp0YDgfDiA

TOP

        靜思自在 : 道德是提昇自我的明燈,不該是呵斥別人的鞭子。
返回列表 上一主題