返回列表 上一主題 發帖

[發問] 20個相同功能ComboBox如何可以省工撰寫?

回復 10# GBKEE


    超版大大,我不想要有"自動帶出"的功能,只想要原始輸入值

舉例:資料庫裡面有.連勝文,連戰,連連看

目前的程式,我輸入一個字"連",後面會自動帶出"勝文"

導致我按下拉式選單時,已無可選擇....只有連勝文可選

我只想要當我輸入"連",他就只有"連"一個字(不會自動帶出後面的字)

此時我點選下拉式選單,就可以選擇"連勝文","連戰","連連看"
PKKO

TOP

回復 11# PKKO
第3#的程式碼不是這樣嗎?
  1. Dim Arr
  2. Private Sub ComboBox17_Change()
  3.     Dim i As Long
  4.     '找出相同姓名的延續
  5. .    Name1 = ComboBox17.Value   '輸入的字串
  6.     For i = 1 To Range("A65536").End(xlUp).Row
  7.         If Range("A" & i) Like ComboBox17 & "*" Then '儲存格字串的開頭與ComboBox17("輸入的字串")相同
  8.             Name1 = Name1 & "," & Range("A" & i)
  9.         End If
  10.     Next
  11.     Arr = Split(Name1, ",")
  12.     UserForm1.ComboBox17.List = Arr
  13.     UserForm1.ComboBox17 = Arr(0) ',下拉式選單 在第一個位置出現顯示你輸入的字串
  14. '點選下拉式選單,可以選擇"連勝文","連戰","連連看"
  15. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 10# GBKEE


    程式已經設定好,會依據目前輸入的字數,去搜尋相關位置的資料,達成下拉式選單可以出現選取的部分
例如資料有"我愛你","我愛他","我好高"

我希望輸入"我"一個字,可以用下拉選單選取"我愛你","我愛他","我好高"  這三項的其中一項
但目前不行

原因為:輸入"我"一個字之後,下拉式選單的輸入位置會"自動帶出"後面兩個字,變成"我愛你"
導致下拉選單只剩下"我愛你"可選

有沒有辦法不要"自動帶出"的功能,不然我輸入"我"之後,要自己把後面"自動帶出"的部分刪除才能達到下拉功能
但我同時也希望我輸入"我愛"之後能出現,"我愛你","我愛他"可選,因此不能把程式設定為只抓第一個字母,
而是有輸入幾個字,就尋找幾個字的資料,重點只有一個,如何能夠"不要自動帶出後面的字"
麻煩大大了
PKKO

TOP

回復 13# PKKO
3#程式碼
ComboBox17 輸入"我好"之後, 點選 ComboBox17動作後的圖示 這是你要的效果嗎?

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 PKKO 於 2014-12-5 01:08 編輯

回復 3# GBKEE


    超版大大您好,我按照您的方式,輸入"我"之後

還是會自動帶出"好高"兩個字,必須手動先將"好高"刪除

才可以變成您的圖片的樣子

是否可以不要自動帶出(因為自動帶出的~使用者必須要先刪除)

晚點再補上照片給您看
PKKO

TOP

回復 15# PKKO


   
是否可以不要自動帶出(因為自動帶出的~使用者必須要先刪除)
請說明(不了解:使用者必須要先刪除)
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 16# GBKEE


    sshot-1.png

使用大大您的程式之後,確實輸入"我",只會出現"我"

但是從第二次開始,只要輸入"我",都會自動帶出"好高"(如圖片所示)

若是關閉USERFORM再打開,第一次都會正常,但第二次開始之後每一次都會自動帶出"好高"

不知為何..

而若是把自動帶出的"好高"用手動刪除,確實下拉選單是會出現"我","我好高","我好矮"

但使用者每次都要把自動帶出的文字刪除,實在頗為不便...麻煩大大了,抱歉
PKKO

TOP

回復 17# PKKO
用滑鼠選,不要用鍵盤選
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 18# GBKEE


    我都是用滑鼠點的,一樣會自動帶出,如果真的沒辦法的話,我就規定只會篩選第一個字母,就不能篩選一個字以上,

但自動帶出的問題就會被解決,目前只有想到這個方式,感謝您!!
PKKO

TOP

回復 19# PKKO
表單加一TextBox控制項 試試看
  1. Option Explicit
  2. Private Sub TextBox1_Change()
  3.     Dim i As Long, Name1, Arr
  4.     For i = 1 To Range("A65536").End(xlUp).Row
  5.         If Range("A" & i) Like Trim(TextBox1) & "*" And Trim(TextBox1) <> "" Then
  6.             Name1 = Name1 & "," & Range("A" & i)
  7.         End If
  8.     Next
  9.     Arr = Split(Mid(Name1, 2), ",")
  10.     With ComboBox17
  11.         If UBound(Arr) <> -1 Then
  12.             .List = Arr
  13.             .Value = Arr(0)
  14.         Else
  15.             .Clear
  16.         End If
  17.     End With
  18. End Sub
  19. Private Sub ComboBox17_Change()
  20.     ComboBox17.DropDown
  21. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 人要自愛,才能愛普天下的人。
返回列表 上一主題