首页 文章

参考VBA Excel中公式内的一系列单元格

提问于
浏览
0

我正在尝试使用VBA来计算某些字段 . 当我录制宏时,我得到了这个:

ActiveCell.FormulaR1C1 = "=AVERAGEIF(R4C[-27]:R4C[-6],2012,RC[-27]:RC[-6])"

问题是公式的范围可能会发生变化 .

我有一个整数变量 NumOfMon ,它从工作表的第一列开始计算公式所需的列 . 但是,上面的公式使用偏移来确定所需的范围,但由于我的范围可以改变,我需要使用NumOfMon才能使用所需的单元格 . 如何更改公式以便我可以正确使用它?

我尝试使用这样的变量:

a = 28
NumofMon = 21
 ActiveCell.FormulaR1C1 = "=AVERAGEIF(R4C[-(a-1)]:R4C[-(a-NumOfMon-1)],2012,RC[-(a-1)]:RC[-(a-NumOfMon-1)])"

但我收到一个错误:“应用程序定义或对象定义错误”

2 回答

  • 2

    基本上

    ActiveCell.FormulaR1C1 = "=AVERAGEIF(R4C[-" & (a-1) & "]:R4C[-" & (a-NumOfMon-1) & "],2012,RC[-" & (a-1) & "]:RC[-" & (a-NumOfMon-1) & "])"
    
  • 1

    如果可以,请将数据转换为表格 . 这样,您可以参考动态数据(更改大小)而不会遇到问题 . 例如,要引用名为“Table1”的表中名为“Item”的列A,您的引用将为“= Table1 [Item]”,无论行如何 .

相关问题