我查看了这里报告的 ByRef 错误,但仍然找不到我的方式的错误。
我有这个,其中 OrderedCaseList() 是 Variant 类型的函数。它被正确调用并按预期返回一个数组。
但是,当我尝试编译时,我在Join(arr...
命令中得到“ByRef 参数类型不匹配”。我不知道为什么...
Private Sub worksheet_Activate()
Dim s As String
Dim arr() As String
Dim var As Variant
Dim i As Long, j As Long
var = OrderedCaseList(True)
ReDim arr(0 To UBound(var))
j = UBound(var)
For i = 0 To j
arr(i) = var(i)
Next
s = Join(arr, ",")
Range("c16").Validation.Add Type:=xlValidateCustom, Formula1:=s
End Sub
注释掉最后两行代码时的变量 watch 输出为:
OrderedCaseList, Type: Variant/Variant
Expression:OrderedCaseList(0), Value:"Case 1", Type:Variant/String
etc.
Var, Type@ Variant/Variant
Expression: Var(0), Value:"Case 1", Type:Variant/String
etc.
arr, Type:String(0 to 3)
Expression:arr(0), Value:"Case 1", Type:String
任何帮助表示赞赏。