Dictionary içinde arama

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba,

Aşağıdaki Dictionary ile ilgili kodda; aranan ifadeyi tam yazmadan TRUE sonucunu nasıl alabiliriz?

Tam ifadeyi yazmadan bulmanın bir yöntem var mıdır?


Kod:
Sub GetKeyDict()
Dim dict
Set dict = CreateObject("Scripting.Dictionary")
dict.Add "utensil", "spork"
Debug.Print dict.exists("utens*")
End Sub
teşekkürler,
iyi akşamlar.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub GetKeyDict()
    Dim dict
    Dim strNames As Variant
    Dim strSubNames As Variant
    
    Set dict = CreateObject("Scripting.Dictionary")
    dict.Add "utensil", "spork"
    dict.Add "utensil2", "spork2"
    
    strNames = dict.keys
    
    strSubNames = Filter(strNames, "uten", True, vbTextCompare)
    
    MsgBox "Found " & UBound(strSubNames) - LBound(strSubNames) + 1 & " names." & vbCr & Join(strSubNames, vbCr)

End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Kod:
Sub GetKeyDict()
    Dim dict
    Dim strNames As Variant
    Dim strSubNames As Variant
   
    Set dict = CreateObject("Scripting.Dictionary")
    dict.Add "utensil", "spork"
    dict.Add "utensil2", "spork2"
   
    strNames = dict.keys
   
    strSubNames = Filter(strNames, "uten", True, vbTextCompare)
   
    MsgBox "Found " & UBound(strSubNames) - LBound(strSubNames) + 1 & " names." & vbCr & Join(strSubNames, vbCr)

End Sub
teşekkürler Veysel Hocam,
iyi ki varsınız!
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Kod:
Sub GetKeyDict()
 

End Sub
Veysel Hocam bir şey daha sorabilir miyim?
Aşağıdaki kodda strSubNames dizisine filtre ettiğimiz key değerlerini alabiliyoruz,
ilave olarak; ikinci bir dizi içine de bu key' lere karşılık gelen Item değerlerini almak için aşağıdaki kodu oluşturdum ama;
bunun farklı bir yöntemi var mıdır?

teşekkürler, iyi akşamlar.

Kod:
Sub GetKeyDict()
    Dim dict, dc
    
    Dim arr
    Dim strNames As Variant
    Dim strSubNames As Variant
    
    Set dict = CreateObject("Scripting.Dictionary")
    dict.Add "utensil", "spork"
    dict.Add "utensil2", "spork2"
    
    strNames = dict.keys
    
    strSubNames = Filter(strNames, "uten", True, vbTextCompare)
    
    a = UBound(strSubNames) - LBound(strSubNames) + 1
    
    
    a = UBound(strSubNames) - LBound(strSubNames) + 1
     
    ReDim arr(a - 1)
    
   For i = LBound(strSubNames) To UBound(strSubNames)
        arr(i) = dict(strSubNames(i))

    Next i

End Sub
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,105
Excel Vers. ve Dili
office2010
Kod:
Sub GetKeyDict()
    Dim dict, dc
    Dim arr
    Dim strNames As Variant
    Dim strSubNames As Variant
    
    Set dict = CreateObject("Scripting.Dictionary")
    dict.Add "utensil", "spork"
    dict.Add "pazzz", "vvvv"
    dict.Add "utensil2", "spork2"

    strNames = dict.keys
    
    strSubNames = Filter(strNames, "ten", 1, vbTextCompare)
    
     x = LBound(strSubNames) + 1
     y = UBound(strSubNames) + 1

    ReDim arr(x To y, 1 To 2)

   For i = x To y
        n = n + 1
        arr(n, 1) = strSubNames(i - 1)
        arr(n, 2) = dict(strSubNames(i - 1))
    Next i
    
    [A2].Resize(n, 2) = (arr)
    
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,058
Excel Vers. ve Dili
Office 2013 İngilizce
Kod:
Sub GetKeyDict()
    Dim dict, dc
    Dim arr
    Dim strNames As Variant
    Dim strSubNames As Variant
   
    Set dict = CreateObject("Scripting.Dictionary")
    dict.Add "utensil", "spork"
    dict.Add "pazzz", "vvvv"
    dict.Add "utensil2", "spork2"

    strNames = dict.keys
   
    strSubNames = Filter(strNames, "ten", 1, vbTextCompare)
   
     x = LBound(strSubNames) + 1
     y = UBound(strSubNames) + 1

    ReDim arr(x To y, 1 To 2)

   For i = x To y
        n = n + 1
        arr(n, 1) = strSubNames(i - 1)
        arr(n, 2) = dict(strSubNames(i - 1))
    Next i
   
    [A2].Resize(n, 2) = (arr)
   
End Sub
Hocam ilgi ve alakanız için teşekkürler,

strSubNames = Filter(strNames, "ten", 1, vbTextCompare)

burada içerenler yerine içermeyenleri almak istersek; nasıl bir düzenleme yapılbilir?

iyi Çalışmalar.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
C#:
    strSubNames = Filter(strNames, "ten", False, vbTextCompare)
.
 
Üst