2013-11-25 71 views
1

类模块命名,我有拆分数组作为输入参数

Private pARRactivityPred() As String 

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

End Property 

,把它:

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

但是,我不知道为什么我得到以下错误:

"Compile error: Definitions of property procedures for the same property are inconsistent, or property procedure has an optional parameter, a ParamArray, or an invalid set or final parameter"

有谁知道最近怎么回事?

+0

http://www.cpearson.com/excel/classes.aspx –

回答

1

这工作:

Dim s() As String 
s = Split("a,b,c,d", ",") 
record.predArray = s 

record.predArray需要字符串数组作为输入,但Split返回Variant数组,这会导致类型不匹配错误。在这里,我将Split的输出转换为一个String数组,并且它可以工作。这种转换可以使用上面的赋值运算符=自动完成,但它不能通过像predArray这样的过程的输入参数工作。参数必须是过程声明中指定的特定类型:Value() As String

我看到@mehow在我做之前一分钟按下了“答案”按钮:-)但是我认为使用循环从Variant数组转换为String数组就像他一样,是不必要的冗长的。

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