如何将范围定义为变量以用作 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) & ")"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Excel:如何将一个函数的结果用作公式的参数/范围

Excel:从工作表中调用vba函数时,将当前单元格作为参数传递

我可以将工作表用作Excel中的函数吗?

Excel Spreadh工作表中DateDiff的用户定义函数

Excel用户定义函数可返回所有工作表中相同范围的平均值,但这一工作表

Excel VBA:如何将数据推到另一张工作表上的独占范围?

将参数值重置为从Excel工作表读取的原始值

如何将函数用作变量c ++

Excel 插件。使用 C# 创建的自定义 Excel 工作表函数

如何将变量分配给具有部分已知名称的Excel工作表

如果我使用pandas .to_excel,如何将工作表分配给变量?

如何将特定工作表中 A1 范围内的 URL 设置为变量?

Excel 64位中的C函数不能用作工作表函数,但在VBA中可以很好地工作

在Excel中将变量用作AVERAGEIF函数的范围选择标准

如何将程序的输出写入Excel工作表

如何将VBA集合写入Excel工作表

如何将 excel/csv 文件作为函数参数传递?

如何将数据表导出到具有来自C#的Excel工作表的用户定义的行号的Excel工作表?

如何将工作表和范围作为变量传递?

将Excel工作表作为参数传递给另一个脚本

如何将表名传递给Excel中的函数

如何将工作簿中的所有工作表汇总为一个-Excel 2013

带有集合参数的 Excel vba 百分位工作表函数

如何将NOW()函数用作范围的上限?

VBA:在将工作表作为函数的参数时,如何解决正确的工作簿?

将 excel 从工作表和工作表下载到 excel 时丢失受保护的范围

如何将函数参数定义为函数或null?

如何将数据框保存到Excel工作表而不删除其他工作表?

如何将Excel工作表从工作簿A复制到工作簿B