将总和显示为公式的VBA代码超出了命名范围


Range("A2").Select
Dim RowLen1 As String
RowLen1 = Range("A2").End(xlDown).Row
Range("A2").End(xlDown).Offset(1, 3).Select
Dim SumRangeTot As Range
Set SumRangeTot = Range("d3:d" & RowLen1)
ActiveCell.Formula = "=Sum(SumRangeTot)"

这段代码将输出显示为"#Name"。我需要输出为公式=sum(D3:D24(。因此,我必须复制公式,并对相邻列求和。

第一个实例我使用了下面的代码ActiveCell=WorksheetFunction.Sum(SumRangeTot(。这个我不能复制,因为输出是绝对数。

不需要使用select,可以使用SumRangeTot的地址,也可以根据需要将其声明为字符串。

Sub temp()
'Range("A2").Select
Dim RowLen1 As String
RowLen1 = Range("A2").End(xlDown).Row
' Range("A2").End(xlDown).Offset(1, 3).Select
Dim SumRangeTot As Range
Set SumRangeTot = Range("d3:d" & RowLen1)
ActiveCell.Formula = "=Sum(" & SumRangeTot.Address & ")"
End Sub

您可以只使用一行代码:

Range("A2").End(xlDown).Offset(1, 3).Formula = "=Sum(R3C:R[-1]C)"

您所在的位置:

  • 抓取单元格以将公式写入(即Range("A2").End(xlDown).Offset(1, 3)

  • 用R1C1表示法编写公式,允许您坚持所写单元格所属的列(C部分(,并通过绝对/相对表示法(R3表示第3行,而R[-1]表示上面的1行(对起始行和结束行索引进行微调

最新更新