我正在为一个小项目工作。我要做的就是在Sub1中创建一个数组并调用一个函数,将该数组传递给该函数,然后让它填充该数组。
非常简化,它看起来像这样:
Private Sub whatever()
Dim arr(10, 2) As String
workArray arr
End Sub
Sub workArray(ByRef arr As String)
'- do stuff here
End Sub
我在Google上搜索了很多东西,只是无法弄清楚我在做什么错。我也尝试过:
我读到我只能传递一个数组ByRef,所以我确定应该没问题。数组arr的类型为String,该函数期望的数组声明为String-也应该正确。我总是得到“ ByRef参数类型不匹配”。可能是String类型的问题吗?字符串数组的行为是否有所不同?
这里有足够的人释放我的痛苦吗?
答案 0 :(得分:0)
您在函数中缺少()
,在将变量传递到其他地方时,数组需要在变量后的()
,因此VBA会将其视为数组
Private Sub whatever()
Dim arr(10, 2) As String
workArray arr
End Sub
Sub workArray(ByRef arr() As String)
'- do stuff here
End Sub
我四处张望cperson,在将数组传递给函数并再次传递给您时,它具有出色的深度指导。如有疑问,请检查cperson。他有很多有关VBA的有用的东西