试图使用VBA从Access使用Excel函数LinEst
我试图使用Access中的Excel LinEst函数来推导给定数据集的热耗率曲线。我研究了不同的方法,使Excel函数在Access中可用,但我的代码没有成功 当我尝试测试进程时,收到以下错误消息 “1004:无法获取工作表函数类的LinEst属性” 这是我的密码。你知道我做错了什么吗?非常感谢你的帮助试图使用VBA从Access使用Excel函数LinEst,vba,excel,ms-access,Vba,Excel,Ms Access,我试图使用Access中的Excel LinEst函数来推导给定数据集的热耗率曲线。我研究了不同的方法,使Excel函数在Access中可用,但我的代码没有成功 当我尝试测试进程时,收到以下错误消息 “1004:无法获取工作表函数类的LinEst属性” 这是我的密码。你知道我做错了什么吗?非常感谢你的帮助 Function PolyForm(yVals As Variant, xVals As Variant, PolyPower As Integer) Dim XArr() As V
Function PolyForm(yVals As Variant, xVals As Variant, PolyPower As Integer)
Dim XArr() As Variant
Dim xl As Object
Set xl = CreateObject("Excel.Application")
XArr = XArray(xVals, PolyPower)
PolyForm = xl.WorksheetFunction.LinEst(yVals, XArr, True, True)
xl.Quit
Set xl = Nothing
End Function
Function XArray(InArr, PolyPower)
Dim XArr() As Variant
Dim i As Long
Dim j As Long
ReDim XArr(1 To UBound(InArr), 1 To PolyPower)
For i = 1 To UBound(XArr)
XArr(i, 1) = InArr(i)
For j = 1 To PolyPower
XArr(i, j) = XArr(i, 1) ^ j
Next j
Next i
XArray = XArr
End Function
yVals
和xVals
的边界和大小是否相同?我不太熟悉LinEst
functio,但一些简单的工作表测试似乎表明,如果数组大小不相同,函数调用将失败。此外,我认为,为了在多维数组上使用LinEst
,需要将其作为ArrayFormula
调用。您可能会考虑修改您的问题,以包括少量的示例数据,其他数据可以用于测试/调试代码。在将VBA结构合并到Access之前,我在Excel中测试了它。这就是XArray函数创建所需XArr结构的原因,因为VBA不支持数组数学;我的研究表明,我会重复:你可以考虑修改你的问题,包括少量的示例数据,其他数据可以用来测试/调试代码。您还可以包括用于在Excel中测试此功能的VBA代码。在这里提供您的测试是一种礼貌(并且是对您的期望),这样其他人就不必尝试重新发明轮子(因为无论如何,大多数人都不愿意这样做!)。