如何在 Access VBA 代码中调用这两个函数 FORECAST.ETS 和 FORECAST.ETS.CONFINT

Posted

技术标签:

【中文标题】如何在 Access VBA 代码中调用这两个函数 FORECAST.ETS 和 FORECAST.ETS.CONFINT【英文标题】:How Do I Call these two functions FORECAST.ETS and FORECAST.ETS.CONFINT in Access VBA Code 【发布时间】:2018-10-01 19:32:57 【问题描述】:

我想通过在 Access 中的 VBA 代码中调用以下引用来使用 FORECAST.ETS 和 FORECAST.ETS.CONFINT:

Excel.WorksheetFunction.Forecast.ETS(...)

Excel.WorksheetFunction.Forecast.ETS.CONFINT(...)

但是,我收到编译器错误为“Argument Not Optional”。我在顶部菜单栏中遇到了工具-> 参考,但未能找到相应的参考供我检查使用。 Excel.WorksheetFunction.Forecast 工作正常,但是找不到 Excel.WorksheetFunction.Forecast.ETS 和 Excel.WorksheetFunction.Forecast.ETS.CONFINT。

有谁知道点击哪个参考文献来检查参考文献列表以便我可以调用这两个函数?

谢谢。

【问题讨论】:

hmm.. 尝试将它们括起来,并使用后期绑定版本:Excel.Application.[Forecast.ETS.CONFINT] 谢谢你,马修。我得到“错误 2029”作为您提供的调用结构的返回值。你能给些建议么?我正在使用 Access 2010。如果可能的话,也请看看这个answers.microsoft.com/en-us/msoffice/forum/… 看起来像一个工作表错误值(例如#VALUE!)。验证实际函数是否适用于您提供的参数。 根据这个页面,有很多原因可以导致#NUM!错误。我可能要一个接一个地检查。 myonlinetraininghub.com/excel-functions/… 【参考方案1】:

根据this 和许多其他来源(例如this),Ets 函数最初是在 Excel 2016 中引入的,因此在早期版本的 Excel 中不可用。

在 Excel 2016 中,我们引入了原生 ETS 功能。这包括 既有 FORECAST.ETS 等一组新功能,也有其他配套 附加统计功能。您的数据集不需要 完美,因为这些函数将容纳高达 30% 的缺失数据。

对于 2016 年,我能够使用 Evaluate,例如

Option Compare Database
Option Explicit
Public Sub test()
    Dim app As Excel.Application
    Set app = New Excel.Application
    Debug.Print app.Evaluate("FORECAST.ETS(42125,1,2,3,4,42005,42036,42064,42095)")
    app.Quit
End Sub

Option Compare Database
Option Explicit
Public Sub test()
    Dim app As Excel.Application
    Set app = New Excel.Application
    Debug.Print app.Evaluate("FORECAST.ETS.CONFINT(42125,100,250,390,450,42005,42036,42064,42095, 95%)")
    app.Quit
End Sub

【讨论】:

谢谢 QHarr。根据您的代码,我得到了“错误 2029”作为 Debug.Print 的值。我将 TODAY() 分别替换为 5 和 '5',分别得到“Error 2029”和“Error 2015”作为返回值。使用我自己的参数,我只能得到错误 2029。请帮助。 FWIW Application.Evaluate 与方括号 =) 做同样的事情 你对当前的例子有同样的问题吗? @MathieuGuindon 抱歉没有看到您的评论。忙于测试。愉快地删除这个。 呃,别这样!我发布了 comment,您发布了 answer - 您的回答很好!我只是指出一些事情,而不是拒绝你的答案! ;-)

以上是关于如何在 Access VBA 代码中调用这两个函数 FORECAST.ETS 和 FORECAST.ETS.CONFINT的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 Access 查询中使用其模块名称来限定 VBA 函数调用?

VBA (Ms-Access) 从宏调用成员函数

使用 MS Access VBA 在 .xlsx 文件中插入一行...如何避免损坏文件?

如何从同一数据库的 VBA 代码中的 MS ACCESS 中提取字段

如何从 VBA 中的两个数组函数获取单个数组输出?

access 两个FORM如何传递数据(请用ACCESS VBA)