拆分数组作为输入参数

时间:2013-11-25 00:49:26

标签: arrays class vba module

在名为的类模块中,我有

Private pARRactivityPred() As String

Public Property Let predArray(Value() As String)
    pARRactivityPred = Value

End Property

并称之为:

record.predArray = Split(string1, ",")

但是,我不确定为什么会出现以下错误:

  

“编译错误:属性过程的定义相同   属性不一致,或属性过程有可选   参数,ParamArray或无效集或最终参数“

有谁知道最近发生了什么?

1 个答案:

答案 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数组就像他一样,这是不必要的冗长。

但是我无法重现您的确切错误。使用您的代码,由于上述原因,我得到编译时“类型不匹配”错误 - 而不是您描述的错误。