2012-08-15 41 views
-1

我得到這個錯誤在VBA,當我試圖讓兩個數組的相關係數ARR1ARR2無法獲取WorksheetFunction類錯誤

Dim arr1() As Variant 
Dim arr2() As Variant 

arr1 and arr2 are initialized in the function. 

Dim result As Double 
result = Application.WorksheetFunction.Correl(arr1, arr2) 

Correl方法拋出的CORREL財產異常

「無法獲取worksheetFunction類的CORREL財產」

任何想法可能是對的原因例外。

編輯:

我認爲,當陣列中的一個具有相同的所有元素出現此問題。在這種情況下,相關係數會導致#DIV0錯誤。

謝謝

+0

arr1和arr2是什麼? – brettdj 2012-08-15 06:27:26

回答

0

我想你已經忘了初始化你的數組。

這很簡單的例子工程:

Public Sub Test() 
    Dim arr1() As Variant 
    Dim arr2() As Variant 
    Dim result As Double 

    arr1() = Array(1, 2, 3, 4) 
    arr2() = Array(1, 2, 3, 4) 

    result = Application.WorksheetFunction.Correl(arr1, arr2) 

    MsgBox ("The result is: " & result) 
End Sub 
+0

否 - 省略「arr1」和「arr2」的值給出與發佈的錯誤不同的錯誤。 – brettdj 2012-08-15 06:31:54

+0

-Hmm ...你說得對! – 2012-08-15 06:34:42

+0

哦,對不起,我忘了粘貼那部分代碼。該數組已初始化。數組'arr1'和'arr2'是函數的參數。 – Kiran 2012-08-15 06:35:29

1

基蘭,防止這種錯誤

兩個可能的解決方案......但看到你的數據會大有幫助

  1. 一(或兩者)您的變體陣列包含字符串而不是數字
  2. 您的陣列的大小不相等
+0

我注意到其中一個數組('arr1')的所有值都是1.而'corr'導致#DIV0錯誤。我認爲,這就是它給出「無法獲得工作表功能類的相關屬性」的原因。你認爲這是問題 – Kiran 2012-08-15 06:53:34

+0

@kiranchandrashekhar是的 - 這是問題。 – brettdj 2012-08-15 06:54:58

相關問題