【发布时间】:2020-01-09 22:06:22
【问题描述】:
我想将数组的值传递给接受这些参数的函数。当我根据提供的代码执行此操作时,我收到一条错误消息,告诉我:“ByRef 参数类型不匹配”我知道我的数组被声明为变体,但我传递给它的值来自函数的适当数据类型接受基于 VarType(arrValues(1 - 3)) 那么代码应该怎么改?
这是我稍后将使用的代码的简化版本,其中函数将实际返回一些有用的东西,并将接收更多参数。
Sub CallFunctionWithArray()
Dim arrValues(1 To 3) As Variant
arrValues(1) = "One"
arrValues(2) = 19 - 11 - 2019
arrValues(3) = 25
Call ReturnValuesOfArray(arrValues(1), arrValues(2), arrValues(3))
End Sub
Function ReturnValuesOfArray(ValueOne As String, ValueTwo As Date, ValueThree As Integer)
Debug.Print ValueOne
Debug.Print ValueTwo
Debug.Print ValueThree
End Function
在这种情况下,希望代码运行并将传递的数组的值打印到直接窗口。
【问题讨论】:
-
19 - 11 - 2019不是日期 - 它是 19 减去 11 减去 2019 - 整数...尝试改为CVDate("19-11-2019") -
@braX,使用了您的建议,仍然返回相同的错误:“ByRef 参数类型不匹配”还将 arrValues(2) 更改为字符串,将函数参数更改为字符串,没有任何区别。发生错误时,调用 return... 中的第一个参数高亮显示。
标签: arrays vba ms-access function-parameter