【发布时间】:2019-11-20 13:04:51
【问题描述】:
我有一个大数据集。我需要过滤然后将过滤后的数据复制到新工作表中,并执行多项式回归以预测特定时间的数据。
数据集的长度不是定义值,可以从一个数据集更改为下一个数据集。我使用 VBA 来查找数据集的结尾,然后创建命名范围,稍后在 LINEST 中使用。
它适用于一个过滤的数据集。
当我遍历我的数据时,我相信代码会用新数据覆盖命名范围。最后我所有的 LINEST 计算都是一样的。
有没有办法更改命名范围以便对其进行迭代?我尝试创建一个设置为我的 Range name + i 的变量,但我无法在 LINEST 中使用该变量。
Sub Regression()
Dim TimeX As Range
Dim X_Time As String
Dim Xxx As Range
Dim XX As String
Dim rws As Long
i = 1
Do While i < 70
rws = Cells(Rows.Count, "A").End(xlUp).Row
Set TimeX = Range("$B$2:$B$" & rws)
Set Xxx = Range("$C$2:$C$" & rws)
‘X_Time = "TimeX" & i
‘XX = "Xxx" & i
X_Time = "TimeX"
XX = "Xxx"
ThisWorkbook.Names.Add Name:=X_Time, RefersTo:=TimeX
ThisWorkbook.Names.Add Name:=XX, RefersTo:=Xxx
Range("L4:N4").Select
Selection.FormulaArray = "=LINEST(Xxx,TimeX^{1,2},TRUE,FALSE)"
i = i + 1
Loop
End Sub
【问题讨论】: