2016-04-25 90 views
0

我正在嘗試編程一個簡單的Z-測試,但我的代碼在計算此代碼的Z分數時出現錯誤:Z = (P1 - P2)/SD;有誰知道爲什麼?在出現的錯誤是溢出(錯誤6)VBA不劃分局部變量(錯誤6溢出)

下面是完整的代碼:

Sub ChiSquare() 

    Total_Groep_1 = Application.Sum(Range("C4", Range("C4").End(xlDown))) 
    Total_Groep_2 = Application.Sum(Range("E4", Range("E4").End(xlDown))) 


    For i = 5 To Range("C4").End(xlDown) 
       Dim P1 As Double 
    P1 = Cells(i, 3)/Total_Groep_1 
    Cells(i, 4) = P1 

    Dim P2 As Double 
    P2 = Cells(i, 5)/Total_Groep_2 
    Cells(i, 6) = P2 

    Dim SD As Double 
    SD = Sqr((P1 * (1 - P1)/Total_Groep_1) + (P2 * (1 - P2)/Total_Groep_2)) 
    Cells(i, 7) = SD 

    Dim Z As Double 
    Z = (P1 - P2)/SD 
    Cells(i, 8) = Z 

    Next i 

End Sub 
+1

什麼是錯誤? –

+1

你爲什麼要返回一個數組到SD?你不能用這樣的數組來劃分數字。 – Rory

+0

我沒有之前,它沒有工作然後:我試圖數組作爲解決方案 – Tara

回答

0

,我把沒去了號碼,但到一系列的循環。它現在工作,我改變了。

+0

循環確實去了一個數字 - 只是不是你想要的數字。實際情況是,單元格包含的數字非常大,以至於當您嘗試循環時,您已超出數據範圍,並且空白單元格上的「SD」公式計算結果爲0。看起來很奇怪,*溢出*而不是*除以0 *是錯誤。 –

+1

另外,您應該將我聲明爲Long,因爲您可以擁有超過65K行的數據。 –