Defining Variable Type for Items and Keys in Dictionary

G

Guest

In the routine below I do not have Option Explicit turned off. When I turn
it on, I get error messages telling me that "Keys" and "Items" are not
defined. What do define them as?

Sub DictionaryDemo()
Dim d as Dictionary
Dim SearchTerm As String
Dim X As Integer

Set d = CreateObject("Scripting.Dictionary")

d.Add "Rob", "Athens" ' Add some keys and items.
d.Add "Barry", "Belgrade"
d.Add "Tim", "Cairo"
d.Add "Tom", "Edmonton"
d.Add "Sue", "Calgary"
d.Add "Sherry", "Vancouver"
d.Add "Brian", "Toronto"
d.Add "Anne", "New Jersey"
d.Add "Dave", "New York"
d.Add "Rick", "Houston"

Items = d.Items
Keys = d.Keys

SearchTerm = "Rob"

Debug.Print "Arrray contains the following data:"

For X = 0 To UBound(Keys)
If Keys(X) = "Rob" Then
Debug.Print Keys(X) & ": " & Items(X)
End If
Next
End Sub

Thanks
EM
 
R

RB Smissaert

Set a reference to the MS Scripting run time and see if this code helps:

Sub test()

Dim i As Long
Dim oDict As Scripting.Dictionary

Set oDict = New Scripting.Dictionary

For i = 1 To 10
oDict.Add Key:=i + 1, Item:=i
Next i

MsgBox oDict.Exists(11), , "key 11 exists?"

End Sub


RBS
 
G

Guest

Hello Monkey,

Sub DictionaryDemo()
Dim d as Dictionary
Dim SearchTerm As String
Dim X As Integer
Dim Keys as Variant
Dim Items as Variant
 
S

Susan

Dim Items as ????????????
Dim Keys as ????????????

i think that's what it's looking for.
susan
 
G

Guest

Yes Tom they needed to be dimensioned as Variants. Wasn't sure what data
type to use. Was originaly thinking it was going to be
"Dictionary.Something" but nothing was coming up in the itellisense.

Thanks
 
Top