excel - 如何将范围定义为变量以用作 Excel 工作表函数的参数?
问题描述
我正在尝试在我的 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) & ")"
推荐阅读
- javascript - 选择后 el-datepicker 重新聚焦
- php - Woocommerce - 从特定变体中排除属性
- javascript - 我应该如何在图表 js 的不同画布中显示比例或轴?
- python-3.x - TypeError:只能将 str(不是“NoneType”)连接到投票机器人中的 str
- jenkins - 如何让并行 Jenkins 作业共享有限的资源池?
- css - 将图像和文本作为一个框
- asp.net-mvc - 添加记录时的 mvc 通知
- java - 如何使 ListView 加载与 ForeignKey 相关的父子对象?
- docker - 在 Docker 容器中运行 Spring Boot 测试
- docker - Maria DB docker 拒绝用户'root'@'localhost'的访问