这句vba代码什么意思?

ActiveCell.FormulaR1C1 = "='统计 (2)'!R[1]C[-4]+'统计 (3)'!R[1]C[-4]"
如果要用Range()命令,上述代码怎么改?

我觉得是这样,先理解这条代码的意义:
设置当前选中的单元格的公式 (以R1C1引用样式)“='统计 (2)'!R[1]C[-4]+'统计 (3)'!R[1]C[-4]"
这个公式的意思:假设当前单元格是E5,在“统计(2)”表和“统计(3)”表中找到5+1行=6,5-4=1列即A列,综上,即A6单元格的值,并相加。

回到问题,我把你说的range理解为公式不要用现在的RC引用样式获得,二是用range属性获得
所以你可以试验下下面这个代码,试验的时候,记得新增2张sheet,一个改名为1,一个改名为2
ActiveCell.Formula = "='1'!" & Cells(ActiveCell.Row + 1, ActiveCell.Column - 4).Address & "+ '2'!" & Cells(ActiveCell.Row + 1, ActiveCell.Column - 4).Address
当然这句代码有局限性,超出边界(比如选择D1单元格)会报错,要加其他判断语句,
而R1C1样式则自动会从左侧边界,跳至右侧边界获取数据,='1'!XFD2+'2'!XFD2
所以,这种情况,R1C1样式的公式实际上是更方便的;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-23
Range(ActiveCell.Address).value = "='统计 (2)'!R[1]C[-4]+'统计 (3)'!R[1]C[-4]"

相似回答