所以我想要做的是向一个单元格中添加一个求和公式,这样以后就可以编辑它了(通常不是通过vba)。它总结了一些细胞,但细胞的数量并不总是相同的。有时是4个细胞,有时是10个细胞。所以我想要:
lastrow = Sheets(7).Cells(Sheets(7).Rows.Count, "A").End(xlUp).Row然后使用它:
Sheets(7).Range("B" & lastrow + 1).Formula = "=SUM(b2:b&"lastrow")"我的问题是语法--实际上,我似乎不能把它做好。如何将最后一行添加到此公式中?
希望可以理解,英语不是我的母语。
发布于 2018-07-16 08:23:15
你错过了连接。
Sheets(7).Range("B" & lastrow + 1).Formula = "=SUM(b2:b" & lastrow & ")"
发布于 2018-07-16 11:40:43
与使用.End(xlUp)方法不同,我建议使用命名范围,特别是对Excel表/ListObjects的内置结构化引用将使代码更健壮、更简单。
使用“命名范围”可以避免代码中的硬编码引用。如果硬代码单元格地址进入代码,那么如果您(或用户)稍后在这些硬编码引用的左边添加新行/列,则这些引用将指向错误的位置。使用名称可以避免这种情况,并使代码更加健壮。
我几乎总是使用Excel (又名ListObjects )来保存与reason...ListObjects交互的任何数据,因为同一个reason...ListObjects是动态命名范围,Excel会自动展开/收缩这些数据以适应数据,而且与.End(xlUp)不同,如果列中包含空白,它们不会抛出您的代码。
所以我会这样做:
Range("SomeNamedRange") = "=SUM(" & Range("SomeTable[SomeColumn]").Address & ")"...or更有可能的是,我会使用[]速记符号:
[SomeNamedRange] = "=SUM(" & [SomeTable[SomeColumn]].Address & ")"https://stackoverflow.com/questions/51357443
复制相似问题