在名为的类模块中,我有
Private pARRactivityPred() As String
Public Property Let predArray(Value() As String)
pARRactivityPred = Value
End Property
并称之为:
record.predArray = Split(string1, ",")
但是,我不确定为什么会出现以下错误:
“编译错误:属性过程的定义相同 属性不一致,或属性过程有可选 参数,ParamArray或无效集或最终参数“
有谁知道最近发生了什么?
答案 0 :(得分:1)
这有效:
Dim s() As String
s = Split("a,b,c,d", ",")
record.predArray = s
record.predArray
期望String数组作为输入,但Split
返回Variant数组,这会导致类型不匹配错误。在这里,我将Split
的输出转换为String数组,它可以工作。此转换可以使用上面的赋值运算符=
自动完成,但不能通过predArray
之类的过程的输入参数来完成。参数必须是过程声明中指定的特定类型:Value() As String
。
我看到@mehow在我做之前一分钟按下“回答”按钮:-)但是我认为使用循环从Variant数组转换为String数组就像他一样,这是不必要的冗长。
但是我无法重现您的确切错误。使用您的代码,由于上述原因,我得到编译时“类型不匹配”错误 - 而不是您描述的错误。