Excel VBA 学生的 T 分布?

Student's T Distributions in Excel VBA?

目前我在 Excel VBA 中编写了一个函数,它基本上使用 table 数据来计算 Z 分数。然后,我使用 excel 函数 NormSDist 从这个 Z 分数中得到一个概率值。代码的最后几行如下所示:

...

Dim disToDef As Double: disToDef = (Log(asset(iNumRows) / debt(iNumRows)) + (meanAsset - sigmaAsset ^ 2 / 2) * maturity) / (sigmaAsset * Sqr(maturity))
Dim defProb As Double: defProb = WorksheetFunction.NormSDist(-disToDef)

KMVModel = defProb

End Function

我想为 T 分布获得一个等效于 NormSDist(z) 的函数,其中我可以将 z 保留为变量。我认为 Excel 中不存在 - 解决此问题的好方法是什么?

Excel可以处理T分布:

Sub test()
    Debug.Print Application.WorksheetFunction.T_Dist(0.95, 20, False) 'pdf value
    Debug.Print Application.WorksheetFunction.T_Dist(0.95, 20, True) 'cdf value
End Sub

输出:

0.247866113626846 
0.823274027108808