大家好,我遇到了一个奇怪的问题,请帮忙。
错误信息如下:
运行时错误 '1004'
无法获取
WorksheetFunction
类的MMult
属性
1、我使用一个名为 "schedule
" 的程序每天自动运行我的 VBA 程序,但是每天 VBA 程序都会失败,但是当我控制我的 "schedule" 程序再次尝试自动运行它以重现这个错误时,我却无法得到这个错误,它会顺利运行。
2、当出现此错误时,Excel 将显示[end] [debug] 窗口,我点击[debug]并按[F5]键,然后它就可以正常运行;如果 MMult 的参数不正确,则它应该再次显示错误。
3、我编写了一个子程序来转储我在 mmult
中使用的数据,无论是在出现错误还是没有出现错误时,它们都是相同的。
因此,我可以假设 mmult
的两个参数是正确的,但为什么我每天都会收到错误消息呢?
最困难的是很难重现这个错误。
代码:
Public Function Regression(ByVal X As Variant, ByVal y As Variant)
writelog ("Regression")
writelog ("dump x")
Call dumpRange(X, 2)
writelog ("dump y")
Call dumpRange(y, 1)
Dim xtrans, temp, temp2, b
xtrans = Application.WorksheetFunction.Transpose(X)
temp = Application.WorksheetFunction.MMult(xtrans, X) ' occour error on this line
temp = Application.WorksheetFunction.MInverse(temp)
temp2 = Application.WorksheetFunction.MMult(xtrans, y)
b = Application.WorksheetFunction.MMult(temp, temp2)
Regression = b
End Function
X 是一个类似于这样的范围。
1 0.34343323
1 1.32323323
1 1.21111221
1 0.33444232
. ......
Windows 7 Home Premium 64位操作系统
Office 2010专业版64位/32位SP1