View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
R..VENKATARAMAN R..VENKATARAMAN is offline
external usenet poster
 
Posts: 41
Default variable not recognised in embedded macro

thank you Mr. John. that is the mistake I am doing. I saw help under
"Understanding Scope and Visibility"
of course to obviate the mistake I parked symbol in one of the cells of the
spread sheet in the main macro
and used the cell.value (instead of "symbol") in the second macro.

yes the mistake is giving <dim within the main macro. I thought that as the
second macro is called in the main macro, the main macro including calling
the second macro will be one procedure. It is not . The above help is
clear. thank you for pointing out this.Though I am fairly familiar with vba,
every day I learn a new thing.

thanks once again.;

"John" wrote in message
...
It sounds like the variable is out of scope, so you could pass the
variable to the second macro as a parameter:

Sub MainMacro()
Dim symbol As String
Call SecondMacro(symbol)
End Sub

Sub SecondMacro(ByRef symbol As String)
Debug.Print symbol
End Sub

..................Or.................declare the variable at module level:

Dim m_symbol As String

Sub MainMacro()
Debug.Print symbol
Call SecondMacro()
End Sub

Sub SecondMacro()
Debug.Print symbol
End Sub

You can look up "Understanding Scope and Visibility" in the VBE help for
details.

Best regards

John

"R..VENKATARAMAN" wrote in message
...
I have a main macro in whcih there is a variable "symbol"
"symbol" is derived from an inputbox
during the step by step running of the main macro if I type in the
immediate window
?symbol
it gives correct answer
there is another macro embeeded in the main macro at the end (before end
sub)
After the last codestatement of main macro the macro moves to the second
macro. once the step runs into the second macro if I type in the
immdediate
window
?symbol
it gives blank
that means when the cursor moves into the second macro the variable
"symbol"
is not recognised.
where do I do the mistake.

I hope I have made myself clear.