passing multiple strings to a function

T

Tijmen

It seems that it is not possible to pass multiple string arguments to a
function in vba.
I am using vba in Excel 2000.
Why does this not work?

Dim testStr1
Dim testStr2

testStr1 = "hi"
testStr2 = "there"

' I get a compile error on the next statement
TestSub(testStr1, testStr2)


Sub TestSub(str1 as String, str2 as String)

MsgBox(str1 & str2)

End sub



Thanks,

Tijmen
 
G

Guest

I would specify the variable types like so:

Dim testStr1 As String
Dim testStr2 As String

Then, you must use the "Call" key word when referencing a function with
arguments like so:

Call TestSub(testStr1, testStr2)

HTH.
 
D

Dave Peterson

This worked ok for me:

Option Explicit
Sub test1()
Dim testStr1 As String
Dim testStr2 As String
testStr1 = "hi"
testStr2 = "there"
TestSub testStr1, testStr2
End Sub
Sub TestSub(str1 As String, str2 As String)
MsgBox (str1 & str2)
End Sub


TestSub was expecting strings.
You were passing two variants
Dim testStr1
Dim testStr2
is the equivalent of:
Dim testStr1 as variant
Dim testStr2 as variant

I could have also used:
TestSub cstr(testStr1), cstr(testStr2)
and kept the variables as variants.
 
A

Andrew Taylor

Subs are called without enclosing the parameter list in parentheses
(which is probably what the error message was telling you), unless
you use the Call statement, so you need either:

TestSub testStr1, testStr2

or

Call TestSub(testStr1, testStr2)

Andrew Taylor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top