2013-11-25 95 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數組就像他一樣,是不必要的冗長的。

但是,我無法重現您的確切錯誤。使用你的代碼,我得到了上述原因的編譯時「類型不匹配」錯誤 - 而不是你描述的錯誤。