【发布时间】:2019-06-05 12:53:26
【问题描述】:
我有一个最多包含 103 张工作表的工作簿。
- 101 张工作表将有不同的产品体积用于时间序列分析。
- 有一个 RAW 数据选项卡,每张纸都会从中提取初始体积数据。
- 有一个汇总表,用于对所有 101 项进行 12 个月的预测。
我想从表 3 循环到 103 并自动化数据分析,时间序列分析的回归部分,以将时间序列数据刷新到摘要表上。
我在下面创建了一个代码来展示我的尝试。我遇到的问题是:
- 我必须单击“是”来覆盖以前的回归数据,该数据在每张表中的 $S$33 范围内。我认为 Application.DisplayAlerts = False 可以解决这个问题。
- 每个月范围都会改变。它总是从 $L$2 和 $C$2 开始,但是需要运行到上个月。 (请参见下面突出显示的内容)我们现在是 19 年 6 月,因此它需要介于 2 美元到 43 美元和 2 美元到 43 美元之间,因为 43 号线是 5 月 19 日的线。
Sub TSA ()
'
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'
Sheets("SPCS000052").Activate
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$L$2:$L$42"), _
ActiveSheet.Range("$C$2:$C$42"), False, True, , ActiveSheet.Range("$S$33") _
, False, False, False, False, , False
Sheets("SPCS000053").Activate
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$L$2:$L$42"), _
ActiveSheet.Range("$C$2:$C$42"), False, True, , ActiveSheet.Range("$S$33") _
, False, False, False, False, , False
Sheets("SPCS000130").Activate
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$L$2:$L$42"), _
ActiveSheet.Range("$C$2:$C$42"), False, True, , ActiveSheet.Range("$S$33") _
, False, False, False, False, , False
Sheets("SPCS000078").Activate
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$L$2:$L$42"), _
ActiveSheet.Range("$C$2:$C$42"), False, True, , ActiveSheet.Range("$S$33") _
, False, False, False, False, , False
Sheets("SPCS000063").Activate
Application.Run "ATPVBAEN.XLAM!Regress", ActiveSheet.Range("$L$2:$L$42"), _
ActiveSheet.Range("$C$2:$C$42"), False, True, , ActiveSheet.Range("$S$33") _
, False, False, False, False, , False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
Regress应该做什么?至于警报,如果我没记错的话,该功能(回归)也应该有警报抑制,以免得到任何警报。如果您也可以在此处粘贴该函数的内容,或者至少粘贴最高位,以查看预期的参数。此外,在循环中......您想要实现的只是运行该命令?最后一个问题...您的工作表名称都是SPCS0000XX吗?以SPCS000001开始,以SPCS000101结束?或者要排除的 2 个工作表名称是什么。 -
@DarXyde "Regress" 是数据分析工具包中的线性回归函数。就循环而言,我只想从 Sheet3 转到 Sheet103,工作表的名称不是特定的顺序或名称中的顺序。要排除的两张表可能更简单的是“数据”和“摘要”,我确实尝试过 DIM XRange 和 Range,Dim YRange 作为 Range,Dim ORange 作为 Range,并设置它们但它不起作用。
标签: excel vba excel-formula analytics