Thanks Jim and Dave.
That all makes perfect sense now.
Ian
"Jim Thomlinson" <James_Thomlinson@owfg-Re-Move-This-.com> wrote in message
news

D32A101-6708-4BF9-B1C0-(E-Mail Removed)...
> 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
>>
>>
>>