我试图使用VBA来计算一些字段。 当我录制宏,我得到这样的:引用VBA中Excel公式中的一组单元格范围
ActiveCell.FormulaR1C1 = "=AVERAGEIF(R4C[-27]:R4C[-6],2012,RC[-27]:RC[-6])"
的问题是,该公式的范围内可以改变。
我有一个Integer变量NumOfMon
,它从表格的第一列计算公式所需的列。但是,上面的公式使用偏移量来确定所需的范围,但是因为我的范围可能会发生变化,所以我需要使用NumOfMon才能使用所需的单元格。如何更改公式以便我可以正确使用它?
我尝试使用变量是这样的:
a = 28
NumofMon = 21
ActiveCell.FormulaR1C1 = "=AVERAGEIF(R4C[-(a-1)]:R4C[-(a-NumOfMon-1)],2012,RC[-(a-1)]:RC[-(a-NumOfMon-1)])"
,但我得到一个错误:“应用程序定义或对象定义的错误”
你需要使用VBA来做到这一点?只有这个片段,听起来像你可以在普通公式中使用'offset()'。 –
我刚刚写了一个固定值的“a”和“NumofMon”,但他们可以有任何其他的值,因为他们实际上是计算出来的 – user1040563
是的,'offset()'允许你引用'a'和'numofmon'动态创建一个可以引用的表。但是,听起来你需要为此使用VBA。 –