Thanks for pointing that out.
Actually, I didn't actually correctly see how he declared it.
Sometimes you look and see what you expect, not what is actually there.
I was talking about a public/global variable.
If it is private, but declared at the top of the module, it is only visible
to the procedures in the module. If it is declared in a procedure, it is
visible only to that procedure and as you say would go out of scope when the
procedure ended.
So to the OP,
you would use the workbook_Open event to call a procedure in that module
that initializes the variable. Otherwise, you might reexamine what you are
trying to achieve.