VBA - 保持单元格公式的完整性
VBA - Maintain cell formula integrity
我很难将 Indirect
公式输入到我的代码中。我知道我可以使用 FormulaR1C1
,但是这会在单元格中创建一个相当静态的公式,并且在我 运行 我的代码之后添加行时不太友好。我希望我的代码类似于此单元格内公式 =SUM(L99:INDIRECT("R[-1]C",0))
,它位于单元格 L106
.
中
下面是我的代码以及我尝试创建上述公式的尝试。谢谢!
Dim s1 As Excel.Worksheet: Set s1 = ActiveWorkbook.Worksheets(ThisWorkbook.Sheets.Count)
With s1
'What the current formula is
.Cells(rwCnt, abRng.Column).Offset(4, 6).FormulaR1C1 = "=sum(R[0]C[-5],R[0]C[-2])"
.Cells(rwCnt, abRng.Column).Offset(11, 6).FormulaR1C1 = "=Sum(R[-7]C[0]:R[-1]C[0])"
'My attempt
.Cells(rwCnt, abRng.Column).Offset(11, 6).Formula = "=sum(" & .Cells(rwCnt, abRng.Column).Offset(4, 6) _
& ":INDIRECT(""R[-1]C"", 0))"
End With
.Cells(rwCnt, abRng.Column).Offset(4, 6)
我认为这将是 return 单元格中的值,您需要它的地址
例如 cells(1,1)
会 return 一个值,其中 cells(1,1).address
会 return $A
我很难将 Indirect
公式输入到我的代码中。我知道我可以使用 FormulaR1C1
,但是这会在单元格中创建一个相当静态的公式,并且在我 运行 我的代码之后添加行时不太友好。我希望我的代码类似于此单元格内公式 =SUM(L99:INDIRECT("R[-1]C",0))
,它位于单元格 L106
.
下面是我的代码以及我尝试创建上述公式的尝试。谢谢!
Dim s1 As Excel.Worksheet: Set s1 = ActiveWorkbook.Worksheets(ThisWorkbook.Sheets.Count)
With s1
'What the current formula is
.Cells(rwCnt, abRng.Column).Offset(4, 6).FormulaR1C1 = "=sum(R[0]C[-5],R[0]C[-2])"
.Cells(rwCnt, abRng.Column).Offset(11, 6).FormulaR1C1 = "=Sum(R[-7]C[0]:R[-1]C[0])"
'My attempt
.Cells(rwCnt, abRng.Column).Offset(11, 6).Formula = "=sum(" & .Cells(rwCnt, abRng.Column).Offset(4, 6) _
& ":INDIRECT(""R[-1]C"", 0))"
End With
.Cells(rwCnt, abRng.Column).Offset(4, 6)
我认为这将是 return 单元格中的值,您需要它的地址
例如 cells(1,1)
会 return 一个值,其中 cells(1,1).address
会 return $A