byref参数类型join()上的不匹配错误



我已经浏览了这里报告的BYREF错误,但仍然找不到我的方式的错误。

i有这个,其中orderedCaselist()是类型变体的函数。它被正确地称为并按预期返回数组。

但是,当我尝试编译时,我会在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

评论最后两行代码时的变量手表输出是:

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

任何帮助都将不胜感激。

您的代码看起来不错,无论我如何设置函数 droundcaselist (我不我都不想想无论如何是问题)。

您是否有可能引用一个第三方DLL,其中包含联接功能?

您可以通过更改此行来验证您正在调用VBA函数:

s = Join(arr, ",")

s = VBA.Strings.Join(arr, ",")

看看它是否编译

最新更新