View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Abe[_4_] Abe[_4_] is offline
external usenet poster
 
Posts: 24
Default Initializing a dictionary and then modifying it.

I changed the location of the public declariation and it ran, thanks.
The example code I gave had the mistake of returning a boolean for the
Sub. I was trying to simplify my actual code and made that mistake in
the simplifying... ignore it, its not in the code I have.

-Abe


Bob Phillips wrote:
Three things

The Public declaration of the dictionary object should be in the standard
code module not Thisworkbook (otherwise you need to qualify it).

If you want a procedure to return a value, it should be a function not a
sub.

Why are you adding to the dictionary in the function? Shouldn't you just
return the value?

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Abe" wrote in message
ps.com...
I have a dictionary object which I need to:

1) Create and modify upon opening the workbook (it draws data from the
workbook for its keys and objects)

2) Read and write to in userform and module level code

I haven't used dictionaries before. Can someone point out where I have
gone wrong? It is giving me a Error: Variable not defined at the Module
level code.

What follows isn't my actual code, but it should give you an idea of
what I am trying to do.

<This Workbook
'Declarations
Option Explicit
Public dictCornerCellPics

Private Sub Workbook_Open()
Set dictCornerCellPics = CreateObject("scripting.dictionary")
dictCornerCellPics.add "a", worksheets(4).cells(1,2)
dictCornerCellPics.add "b", worksheets(4).cells(2,2)
...etc....
End Sub
</This Workbook

<module code

Public Sub MakeCorners (strng as String) as Boolean
dictCornerCellPics.add strng, worksheets(3).cells(1,1)
...etc....
MakeCorners = dictCornerCellPics.exists("a")
End Sub
</module code

Thanks in advance, (someday, in a galaxy far far away, I'll be able to
end a post with HTH...)

-Abe