请帮我看看excel宏语句

来源:百度知道 编辑:UC知道 时间:2024/05/31 08:15:20
Dim R As Integer
R = Selection.Row - 1
R1 = Cells(R, 1).End(xlUp).Row
......
End With
Cells(R + 2, 2).FormulaR1C1 = "=SUM(R" & R1 & "C7:R[-2]C7)"
这是一个汇总用的宏语句,,请您解释一下,"=SUM(R" & R1 & "C7:R[-2]C7)" 公式的详细含义. (每个字符的含义)
我将这个宏用在134个工作表中,为什么,只有在sheet1,和sheet2中可以安要求计算,而在其它的132个工作表中,会在第一次销售时出现错误,(这个宏其它运行的正常)
错误是这样的:假如在sheet4中.
第一次 销售了20种商品,用宏插入一个汇总行,计算G3:G23的销售总额,可是这个宏只运算G8:G23,而没有将G3:G7计算在内.
第二次 销售了10种商品,再用宏插入汇总行,就会正确的计算G26:G35的销售额
以后的,每次销售都正确.
这种错误,会出现在sheet4:sheet134的所有工作表中

"=SUM(R" & R1 & "C7:R[-2]C7)

假设变量R1的值为10
那么这个公式写在工作表中就是:

=sum(r10c7:r[-2]c7)

这个是R1C1格式的引用方式(工具》选项》常规》R1C1引用样式)
其中的R10C7就是第10行第7列的单元格。换成A1引用样式就是$G$10
R[-2]C7,就是G列的公式所在单元格上方2行处的单元格。
假设公式在第20行,那么R[-2]就是第18行。
那么整个公式换成A1引用样式就是=sum($G$10:$G18)
如果公式在第30行,那么他的A1样式=sum($G$10:$G28)

当然,公式中的10是我的假设值,它是根据R1变量确定的。
关于计算结果不准确的问题,我在你的上一次提问时已经指出了。
http://zhidao.baidu.com/question/81957981.html
你给出的部分代码中,R1是根据变量R计算的,而R是根据活动单元格所在行决定的。