.Address(相对参考

时间:2018-03-30 17:14:28

标签: excel vba absolute relative

我需要帮助创建一个自动对一列进行求和的公式,然后将该公式复制到两个相邻列中。 每个月的行数会有所不同,所以我需要它是动态的。我现在使用的代码返回绝对引用, 虽然我需要它是相对的

当前代码:

Range("G1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Delete
ActiveCell.Offset(-1).Select

'NEED TO MAKE FORMULA RELATIVE
ActiveCell.FormulaR1C1 = "=SUM(" & ActiveCell.Offset(-1).Address(ReferenceStyle:=xlR1C1) & ":" & ActiveCell.Offset(-1).End(xlUp).Address(ReferenceStyle:=xlR1C1) & ")"
Selection.Copy

结果:=SUM($G$1:$G$156)

我需要的是删除这里的绝对引用

将代码更改为: ActiveCell.FormulaR1C1 = "=SUM(" & ActiveCell.Offset(-1).Address(0, 0, ReferenceStyle:=xlR1C1) & ":" & ActiveCell.Offset(-1).End(xlUp).Address(0, 0, ReferenceStyle:=xlR1C1) & ")"" 将返回公式:"=SUM(M157:M312)

(0, 0,替换为(false, false,(RowAbsolute:=False, ColumnAbsolute:=False,时,结果相同

1 个答案:

答案 0 :(得分:1)

试试这个:

ActiveCell.Formula = "=SUM(" & ActiveCell.Offset(-1).Address(False, False) & ":" & ActiveCell.Offset(-1).End(xlUp).Address(False, False) & ")"