ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Defining Variable Type for Items and Keys in Dictionary (https://www.excelbanter.com/excel-programming/388768-defining-variable-type-items-keys-dictionary.html)

ExcelMonkey

Defining Variable Type for Items and Keys in Dictionary
 
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

RB Smissaert

Defining Variable Type for Items and Keys in Dictionary
 
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


"ExcelMonkey" wrote in message
...
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



Tom Ogilvy

Defining Variable Type for Items and Keys in Dictionary
 
Hello Monkey,

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

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote:

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


Susan

Defining Variable Type for Items and Keys in Dictionary
 

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

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

On May 4, 1:15 pm, ExcelMonkey
wrote:
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




ExcelMonkey

Defining Variable Type for Items and Keys in Dictionary
 
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

"Tom Ogilvy" wrote:

Hello Monkey,

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

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote:

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


Tom Ogilvy

Defining Variable Type for Items and Keys in Dictionary
 
these properties are passed as arrays, so a variant is needed.

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote:

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

"Tom Ogilvy" wrote:

Hello Monkey,

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

--
Regards,
Tom Ogilvy


"ExcelMonkey" wrote:

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



All times are GMT +1. The time now is 07:32 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com