![]() |
passing multiple strings to a function
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 |
passing multiple strings to a function
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. "Tijmen" wrote: 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 |
passing multiple strings to a function
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. Tijmen wrote: 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 -- Dave Peterson |
passing multiple strings to a function
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 Tijmen wrote: 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 |
All times are GMT +1. The time now is 05:08 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com