Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
looping through items in a dictionary
I have a dictionary, named dictCornerCellPics, whose items are all
picture objects. I want to loop through each picture's name (not key!) and if it satisifies a condition, the code does something. This below gives the gist of what I want to do, but doesn't work. dim pic as Picture dim picName as string For each pic in dictCornerCellPics picName = pic.name if picName like "UL*" then 'does some stuff end if next pic This code also returns an error if I use dictCornerCellPics The code above returns an "Object Required" error. Anybody know what's wrong with the above code, or can give a better/different way to achieve the same thing? |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
looping through items in a dictionary
Here is an example
Dim dict As Object Dim ary Dim i As Long Set dict = CreateObject("Scripting.Dictionary") With dict .Add "a", "Athens" ' Add some keys and items. .Add "b", "Belgrade" .Add "c", "Cairo" End With ary = dict.Items For i = 0 To dict.Count - 1 Debug.Print ary(i) Next -- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Abe" wrote in message oups.com... I have a dictionary, named dictCornerCellPics, whose items are all picture objects. I want to loop through each picture's name (not key!) and if it satisifies a condition, the code does something. This below gives the gist of what I want to do, but doesn't work. dim pic as Picture dim picName as string For each pic in dictCornerCellPics picName = pic.name if picName like "UL*" then 'does some stuff end if next pic This code also returns an error if I use dictCornerCellPics The code above returns an "Object Required" error. Anybody know what's wrong with the above code, or can give a better/different way to achieve the same thing? |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
looping through items in a dictionary
When you do a For Each on a dictionary object, you enumerate the
Keys, not the Items. Yes, this is counter-intuitive. Change your code to For each pic in dictCornerCellPics.Items -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Abe" wrote in message oups.com... I have a dictionary, named dictCornerCellPics, whose items are all picture objects. I want to loop through each picture's name (not key!) and if it satisifies a condition, the code does something. This below gives the gist of what I want to do, but doesn't work. dim pic as Picture dim picName as string For each pic in dictCornerCellPics picName = pic.name if picName like "UL*" then 'does some stuff end if next pic This code also returns an error if I use dictCornerCellPics The code above returns an "Object Required" error. Anybody know what's wrong with the above code, or can give a better/different way to achieve the same thing? |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
looping through items in a dictionary
Chip,
I tried that and it still returned the object error. Any guesses as to why (I know my dictionary has been initialized, but it may not--depending on the user's inputs--have anything in it)? -Abe Chip Pearson wrote: When you do a For Each on a dictionary object, you enumerate the Keys, not the Items. Yes, this is counter-intuitive. Change your code to For each pic in dictCornerCellPics.Items -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Abe" wrote in message oups.com... I have a dictionary, named dictCornerCellPics, whose items are all picture objects. I want to loop through each picture's name (not key!) and if it satisifies a condition, the code does something. This below gives the gist of what I want to do, but doesn't work. dim pic as Picture dim picName as string For each pic in dictCornerCellPics picName = pic.name if picName like "UL*" then 'does some stuff end if next pic This code also returns an error if I use dictCornerCellPics The code above returns an "Object Required" error. Anybody know what's wrong with the above code, or can give a better/different way to achieve the same thing? |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
looping through items in a dictionary
Because it doesn't work that way. See my previous post.
-- HTH Bob Phillips (replace somewhere in email address with gmail if mailing direct) "Abe" wrote in message oups.com... Chip, I tried that and it still returned the object error. Any guesses as to why (I know my dictionary has been initialized, but it may not--depending on the user's inputs--have anything in it)? -Abe Chip Pearson wrote: When you do a For Each on a dictionary object, you enumerate the Keys, not the Items. Yes, this is counter-intuitive. Change your code to For each pic in dictCornerCellPics.Items -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Abe" wrote in message oups.com... I have a dictionary, named dictCornerCellPics, whose items are all picture objects. I want to loop through each picture's name (not key!) and if it satisifies a condition, the code does something. This below gives the gist of what I want to do, but doesn't work. dim pic as Picture dim picName as string For each pic in dictCornerCellPics picName = pic.name if picName like "UL*" then 'does some stuff end if next pic This code also returns an error if I use dictCornerCellPics The code above returns an "Object Required" error. Anybody know what's wrong with the above code, or can give a better/different way to achieve the same thing? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Customizing a dictionary | Excel Worksheet Functions | |||
HELP-Dictionary | Excel Programming | |||
dictionary | Excel Programming | |||
Dictionary objet | Excel Programming |