这句vba代码什么意思?
ActiveCell.FormulaR1C1="='统计(2)'!R[1]C[-4]+'统计(3)'!R[1]C[-4]"如果要用Range()命令,上述代码怎么改?...
ActiveCell.FormulaR1C1 = "='统计 (2)'!R[1]C[-4]+'统计 (3)'!R[1]C[-4]"
如果要用Range()命令,上述代码怎么改? 展开
如果要用Range()命令,上述代码怎么改? 展开
2个回答
展开全部
我觉得是这样,先理解这条代码的意义:
设置当前选中的单元格的公式 (以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样式的公式实际上是更方便的;
设置当前选中的单元格的公式 (以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样式的公式实际上是更方便的;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询