如何将多个参数传递给VBA中的过程?

时间:2013-11-29 12:10:35

标签: vba excel-vba excel

我正在尝试将两个字符串参数传递给Sub,但它不允许我这样做。我使用的方法如下。

Sub callByValue( str1 As String, str2 As String)
MsgBox str1
MsgBox str2

End Sub

调用宏:

 Dim s1, s2 As String
 callByValue(s1,s2)

在调用callByvalue时,它会抛出编译器错误。

2 个答案:

答案 0 :(得分:15)

您需要删除括号

callByValue s1, s2

另请记住,在VBA中,当您说Dim s1, s2 As String时,只有s2将被声明为String而第一个将被声明为Variant

我注意到的另一件事是你在调用sub之前没有分配s1s2的值。你们两个都会得到一个空白。

例如,这样做。

Sub Sample()
    Dim s1 As String, s2 As String
    s1 = "Blah": s2 = "Blah Blah"
    callByValue s1, s2
End Sub

答案 1 :(得分:3)

这是ByVal call sub的更好定义。

Sub callByValue(ByVal str1 As String, ByVal str2 As String)
  MsgBox str1
  MsgBox str2
End Sub

Sub sof20285505callByVal()
  Dim s1, s2 As String
  callByValue s1, s2
End Sub