' This is a Chi-Square Test function ' When degree of freedom is one, it will execute the Yates Correction ' Otherwise, it calls the worksheet function (ChiTest) to do the normal Chi-Square test Public Function CHITESTYC(ObsRange As Object, TheoRange As Object) As Double Dim nCat As Integer nCat = UBound(ObsRange(), 1) If nCat = 2 Then ChiSquare = 0 For i = 1 To nCat ChiSquare = ChiSquare + (Abs(ObsRange(i) - TheoRange(i)) - 0.5) ^ 2 / TheoRange(i) Next i p_value = WorksheetFunction.ChiDist(ChiSquare, nCat - 1) CHITESTYC = p_value Else CHITESTYC = WorksheetFunction.ChiTest(ObsRange, TheoTange) End If End Function