2016-04-25 63 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行的数据。 –