Actually you are incorrect. When your code runs another procedure the variable is NOT empty. It is out of scope, and does not even exist. Variables declared within a procedure only exist within that procedure. When the procedure terminates, all memory addresses assigned to procedure level variables are released.

Declare it as a public variable. You need to look up Scope in Help. Scope is a very important subject. Do not fall for going too much the other way - making all variables Public. Use variables with the proper scope for what they need to do.