为什么我的VBA代码中出现“types声明字符与声明的数据types不匹配”?

我写了一个计算对数正态分布概率密度函数积分的程序。 我希望它能够计算pdf的第n个时刻。 但是,如果我修改我的代码,我得到这个错误。 它在我添加*(x^(M))之前正常工作

 Function riemanint(n, a, b) Dim h, i, x h = (b - a) / n x = a - h / 2 For i = 1 To n x = x + h s = s + f(x, ev, var, PI, M) * h Next riemanint = s End Function Function f(x, ev, var, PI, M) PI = Application.WorksheetFunction.PI() ev = Range("D2") var = Range("E2") M = Range("F2") f = (((1 / (x * ((2 * PI) ^ 0.5) * var)) * Exp((-(Log(x) - ev) ^ 2) / (2 * var * var)))) * (x^(M)) End Function