返回列表 上一主題 發帖

vba combobox 不重複資料的ADD 方式

vba combobox 不重複資料的ADD 方式

請問依下
vba combobox 資料ADD 方式 要如何不重複用

資料來源為儲存格

回復 1# stran


    樓主的意思是?
資料內有重複?  而ADD不重複的資料?

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

3K701
3K702
3K702
3K702
3K703
3K704
3K701
3K702
3K707
3K703

例如 A欄位 有以上資料
想要進行 ComboBox.additem  作業

請問如何做出不重複資料的選單

TOP

本帖最後由 av8d 於 2012-11-1 15:33 編輯

回復 3# stran


    這問題~這裡的老師們有教過我~舉例如下
Private Sub UserForm_Initialize()
    Dim A As Range
    Set d = CreateObject("Scripting.Dictionary")
    With Sheets("Sheet1")
        .Activate
        For Each A In .Range("A1", .[a1].End(xlDown))
          d(A.Value) = IIf(d(A.Value) = "", A.Offset(, 1).Value, d(A.Value) & "," & A.Offset(, 1))
        Next
        ComboBox1.List = d.keys
    End With
End Sub


以上範例為~當資料在A欄~若要在其他欄位請更改這段
For Each A In .Range("A1", .[a1].End(xlDown))
若要改成B欄只要將這段的A1和a1~改成B1和b1即可
以上是麻辣教師的老師們指導的~不知道有沒有符合你要的答案!?

TOP

請問各位,有方法把上面得出來的結果再排序嗎?
因為我用以上我Scripting.Dictionary確實找到我要的東西,可是不是順序的

另外有方法把日期預設為前一天工作天(即不包括星期六日)嗎?

TOP

回復 5# SteveChm
  1. Option Explicit
  2. Private Sub UserForm_Initialize()
  3.     Dim d As Object, A   As Range, i As Integer
  4.     Set d = CreateObject("Scripting.Dictionary")
  5.     With Sheets("Sheet1")
  6.         .Activate
  7.         For Each A In .Range("A1", .[a1].End(xlDown))
  8.           d(CDbl(A.Value)) = A.Value
  9.         Next
  10.         For i = 1 To d.Count
  11.            ComboBox1.AddItem d(Application.Small(d.keys, i))
  12.         Next
  13.     End With
  14. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

[版主管理留言]
  • GBKEE(2014/2/13 06:36): 要上傳檔案看愾

GBKEE大大, 感謝你的回覆,
可是我把你的CODE放到我的檔案執行,出現了錯誤13,型態不符合.請問是那裡出問題了?

另外請問可以預設combo box 入的數值(當天的前一個工作天)而不是空白嗎?

謝謝你的回覆

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題