• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

CreateObject("Scripting.Dictionary")

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Kod:
Dim dizi
Dim i As Long
Dim dic As Object 'Scripting.Dictionary

dizi = ml.Range("D2:D65536")
Set dic = CreateObject("scripting.dictionary")
With dic
    For i = 2 To UBound(dizi, 1)
        If Not .exists(dizi(i, 1)) Then
            .Add CStr(dizi(i)), ""
        End If
    Next i
    If .Count Then
        stok.KA.List = Application.Transpose(.keys)
    
    End If
End With

Yukarıdaki kodlarda nerede hata yapıyorum ki; "D" sütunundaki verilerden 1er tane comboboxa cekemiyorum?

"Out of range" hatası veriyor
 
Deneyiniz...

Kod:
Private Sub UserForm_Initialize()
    Dim Dizi
    Dim i As Long
    Dim dic As Object 'Scripting.Dictionary
    Set ml = Sheets("Sayfa1")
    Dizi = ml.Range("D2:D" & ml.Rows.Count)
    Set dic = CreateObject("scripting.dictionary")
    With dic
        For i = 1 To UBound(Dizi, 1)
            If Not .Exists(Dizi(i, 1)) Then
                .Add CStr(Dizi(i, 1)), ""
            End If
        Next i
        If .Count Then
            Stok.KA.List = .Keys
        End If
    End With
End Sub
 
Korhan bey çok teşekkür ederim.
Bununla ilgili çok araştırma yaptım ama tam manada kodların amaçlarını ve neyi ne sebeple yaptığını anlatan bir konu bulamadım.

Kod:
http://www.excel.web.tr/f48/scripting-dictionary-nesnesi-hakkynda-t146392/sayfa2.html

Anladığım kadarıyla Bazı yerlerde kullandığımız döngülerin yerine bu işlem fevkalade hızlı bir şekilde veri almaya yarıyor.

Kapalı dosyadan ver alma
Benzersizleri sayma & bulma
Kayıt arama
Dizi oluşturma.

Korhan bey sizden ricam bu konu üzerinde detaylı bir paylaşımda bulunabilirmisiniz.
Yani bir nebze de olsa balık tutmayı öğrenmek istiyorum.
 
Geri
Üst