首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建与动态范围相加的公式?我只是不能做出正确的语法

如何创建与动态范围相加的公式?我只是不能做出正确的语法
EN

Stack Overflow用户
提问于 2018-07-16 08:20:41
回答 2查看 99关注 0票数 1

所以我想要做的是向一个单元格中添加一个求和公式,这样以后就可以编辑它了(通常不是通过vba)。它总结了一些细胞,但细胞的数量并不总是相同的。有时是4个细胞,有时是10个细胞。所以我想要:

代码语言:javascript
复制
lastrow = Sheets(7).Cells(Sheets(7).Rows.Count, "A").End(xlUp).Row

然后使用它:

代码语言:javascript
复制
Sheets(7).Range("B" & lastrow + 1).Formula = "=SUM(b2:b&"lastrow")"

我的问题是语法--实际上,我似乎不能把它做好。如何将最后一行添加到此公式中?

希望可以理解,英语不是我的母语。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-16 08:23:15

你错过了连接。

Sheets(7).Range("B" & lastrow + 1).Formula = "=SUM(b2:b" & lastrow & ")"

票数 3
EN

Stack Overflow用户

发布于 2018-07-16 11:40:43

与使用.End(xlUp)方法不同,我建议使用命名范围,特别是对Excel表/ListObjects的内置结构化引用将使代码更健壮、更简单。

使用“命名范围”可以避免代码中的硬编码引用。如果硬代码单元格地址进入代码,那么如果您(或用户)稍后在这些硬编码引用的左边添加新行/列,则这些引用将指向错误的位置。使用名称可以避免这种情况,并使代码更加健壮。

我几乎总是使用Excel (又名ListObjects )来保存与reason...ListObjects交互的任何数据,因为同一个reason...ListObjects是动态命名范围,Excel会自动展开/收缩这些数据以适应数据,而且与.End(xlUp)不同,如果列中包含空白,它们不会抛出您的代码。

所以我会这样做:

代码语言:javascript
复制
Range("SomeNamedRange") = "=SUM(" & Range("SomeTable[SomeColumn]").Address & ")"

...or更有可能的是,我会使用[]速记符号:

代码语言:javascript
复制
[SomeNamedRange] = "=SUM(" & [SomeTable[SomeColumn]].Address & ")"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51357443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档