vba中的相对参考小计公式
Posted
技术标签:
【中文标题】vba中的相对参考小计公式【英文标题】:Relative reference subtotal formula in vba 【发布时间】:2014-06-05 20:03:28 【问题描述】:我正在尝试制作一个每隔几列都有小计的表格。我的 vba 代码将另一张工作表中的数据带入并将其分类为多个部分,现在我正在尝试编写代码以放入小计公式。这就是我所拥有的:
Sub Macro21()
Dim FI(1 To 3) As Variant
FI(1) = "Fixed Income"
FI(2) = 10
FI(3) = 21
Sheets("Sheet1").Cells(FI(2), 3).FormulaR1C1 = "=SUBTOTAL(9,R[1]C:R[FI(3)-FI(2)]C)"
End Sub
FI(2) 和 FI(3) 是本节的开始行和结束行。我在宏的其他部分使用它们,它们会随着新项目被放在一个类别下而更新。
当我运行它时,它给了我一个错误。有任何想法吗?
【问题讨论】:
【参考方案1】:我认为您需要将公式构建为字符串,而不是使其引用您的Variant
数组。怎么样:
Sheets("Sheet1").Cells(FI(2), 3).FormulaR1C1 = _
"=SUBTOTAL(9,R[1]C:R[" _
& CStr(FI(3)-FI(2)) _
& "]C)"
这假设结果字符串是您想要计算的...
【讨论】:
你的逻辑是有道理的,但它仍然给我一个错误。在旁注中,如何正确使用 _? 1) 什么错误? 2)_
作为代码行的最后一个字符(前面有一个空格)允许在下一行代码中继续当前语句。
这很好。错误说下标超出范围。抱歉,我离开了一会儿。
是不是计算公式的那一行出错了?如果是,您是否真的有一张名为 "Sheet1"
的工作表(最容易测试的是在即时窗口中使用 ?Sheets("Sheet1").Name
)。
这就是问题所在。我的工作表名称错误。你太棒了。以上是关于vba中的相对参考小计公式的主要内容,如果未能解决你的问题,请参考以下文章