如何在不定义vba excel范围的情况下使用formular1c1?

时间:2013-07-29 22:22:39

标签: excel vba excel-vba

我的代码是:

Range("M1").Select
ActiveCell.FormulaR1c1 = "SUM(R[2]C:R[4157]C)"

如果我有超过4157行,我的问题是什么。如何确保将该列的所有行都加起来?

谢谢!

2 个答案:

答案 0 :(得分:0)

根据Jaycal的评论,试试这个:

dim rowNum as integer
Range("M1").Select
rowNum=activesheet.cells(rows.Count,activecell.Column).end(xlUp).row
ActiveCell.FormulaR1c1 = "=SUM(R[2]C:R[" & rowNum & "]C)"

其中使用单元格表示法意味着我们可以引用行然后列,行被视为工作表中的最大行,列是活动单元格 - 这使得它比引用范围(“M”& amp;)更可重用。 rows.count)无论如何你已经选择了单元格。

答案 1 :(得分:0)

尝试:

Range("M1").Select
ActiveCell.FormulaR1c1 = "=SUM(R[2]C:R[" & ActiveSheet.UsedRange.Rows.Count & "]C)"

编辑:

在公式中添加了=,以便Excel了解它是一个公式。否则它只会将文本放在单元格中。