我正在尝试在我的 vba 代码中使用 Excel 工作表 Forecast() 函数。Forecast() 函数需要两个范围作为参数。我想使用一个不断变化的范围作为这个函数的输入,所以我不能定义一个静态范围作为输入(例如 B2:B10)。
For i = 1 To DailySize
n = i + 1
ForecastHours(i) = Cells(n, 4).Value
ProgramDays(i) = Cells(n, 1).Value
Next i
For i = Start To ForecastSize
Worksheets("Data Inputs").Cells(i, 5).Formula = "=Forecast(" & Worksheets("Data Inputs").Cells(i, 1) & ","ForecastHours","ProgramDays")"
Next i
第一个 for 循环定义了两个数组 ForecastHours 和 ProgramDays,它们的大小根据变量 DailySize 发生变化。我在徘徊是否可以使这两个数组范围,以便它们可以成为第二个 for 循环中 Forecast() 函数的输入。
我现在收到第二个 for 循环的语法错误,可能是因为我试图将数组用作输入而不是范围。任何帮助将不胜感激,谢谢!
跳过循环并将变量声明为范围并使用它们的地址:
Dim ProgramDays As Range
Dim ForecastHours As Range
Set ProgramDays = Range("A1:A" & DailySize)
Set ForecastHours = Range("D1:D" & DailySize)
Worksheets("Data Inputs").Range("E" & Start & ":E" & ForecastSize + Start - 1).Formula = _
"=forecast(" & Worksheets("Data Inputs").Cells(Start, 1).Address(0, 0) & "," & ForecastHours.Address(1, 1) & "," & ProgramDays.Address(1, 1) & ")"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句