Initializing a dictionary and then modifying it.

A

Abe

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
 
B

Bob Phillips

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)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top