Board logo

標題: vba combobox 不重複資料的ADD 方式 [打印本頁]

作者: stran    時間: 2012-10-31 22:56     標題: vba combobox 不重複資料的ADD 方式

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

資料來源為儲存格
作者: mark15jill    時間: 2012-11-1 08:23

回復 1# stran


    樓主的意思是?
資料內有重複?  而ADD不重複的資料?
作者: stran    時間: 2012-11-1 11:34

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

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

請問如何做出不重複資料的選單
作者: av8d    時間: 2012-11-1 15:31

本帖最後由 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即可
以上是麻辣教師的老師們指導的~不知道有沒有符合你要的答案!?
作者: SteveChm    時間: 2014-2-11 18:06

請問各位,有方法把上面得出來的結果再排序嗎?
因為我用以上我Scripting.Dictionary確實找到我要的東西,可是不是順序的
[attach]17474[/attach]
另外有方法把日期預設為前一天工作天(即不包括星期六日)嗎?
作者: GBKEE    時間: 2014-2-11 21:01

回復 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
複製代碼

作者: SteveChm    時間: 2014-2-12 20:56

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

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

謝謝你的回覆




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)