Thread: "Dim" query
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Jim Thomlinson Jim Thomlinson is offline
external usenet poster
 
Posts: 5,939
Default "Dim" query

In VBA if you do not specify things then they have a default value. For
variables or arguments unless specified otherwise variant is assumed. When
you declare sTTPath as string, the variable is a string. Since you do not
specify the type of argument you have in your procedure

Sub FindTempPrepPath(sTTPath) 'I am assuming it looks like this

sTPPath is once again a variant. Note that your function FindTempPrepPath
can accept any type of argument. If you want it to accept only strings then
change the declaration of the procedure something like this...

Public Sub FindTempPrepPath(byval sTPPath as String)

--
HTH...

Jim Thomlinson


"Ian" wrote:

I've recently discovered the Locals window in Excel VBE thanks to a pointer
in this forum, but I have a question about the way variables are displayed
there.

I have a string variable sTPPath. If I do not dimension it, it appears as
Variant/Empty.
If I dimension it as a string it appears as String.
The variable is then populated with a folder path.

OK so far.

This variable is then passed to another routine uisng:
Call FindTempPrepPath(sTPPath)

Once in this routine sTPPath appears as Variant/String.

Is this a problem, as I run into problems if I then try to dimension the
variable in the sub-routine (duplicate declaration in current scope) as I
would expect..

Why does this appear as Variant/String rather than String? It's almost as if
the subroutine doesn't recognise the previous Dim statement.

Ian