excel vba 如何求一列单元格的和 并将值保存在最后一个单元格中,以实现纵向自动求和?

比如点1234增加了一个点依然要实现自动求和利用循环... 比如 点1 2 3 4 增加了一个点 依然要实现自动求和
利用循环
展开
 我来答
夜空里的守望者
2019-04-16 · 穿越时空,互联互通。
夜空里的守望者
采纳数:8493 获赞数:31597

向TA提问 私信TA
展开全部

楼主的描述不是很清晰,也就大致写了一个简单的VBA程序代码,望笑纳。

(1)程序代码如下:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i1, i2, i3, i4
On Error Resume Next         '忽略运行过程中可能出现的错误
Application.EnableEvents = False    '开启代码只执行一次
Set mysheet1 = ThisWorkbook.Worksheets("Sheet1")

If Target.Row > 2 And Target.Row < 7 And Target.Column = 1 Then '如果是选择A列第3-6行,则

 If mysheet1.Cells(8, 2) = "" Then  '如果单元格是空白,则先求和
  mysheet1.Cells(8, 2) = Application.WorksheetFunction.Sum(mysheet1.Range("B3:B7"))
 End If
 If mysheet1.Cells(8, 3) = "" Then
  mysheet1.Cells(8, 3) = Application.WorksheetFunction.Sum(mysheet1.Range("C3:C7"))
 End If
  mysheet1.Cells(8, 2) = mysheet1.Cells(8, 2) + mysheet1.Cells(Target.Row, 2) '再累积相应的值
  mysheet1.Cells(8, 3) = mysheet1.Cells(8, 3) + mysheet1.Cells(Target.Row, 3)
End If

Application.EnableEvents = True    '恢复代码只执行一次

End Sub

(2)如果选择数字1、2、3、4,当求和(结果)的单元格是空白,则先进行求和,再与响应的单元格相加。

更多追问追答
追问
恩 老师说要用循环结构 因为工程过程中 难免会有新的点插入 所以要求在插入点后 即插入行后仍然可以使用自动求和 并保存在列最后一个单元格中
追答
楼主的问题,其实没有必要使用到循环结构(如:一个个单元格去相加,这无意中将会增加程序的复杂程度,降低运算速度),直接引用现成的SUM函数,以及更改其求和范围即可。
百度网友00702db
2019-04-16 · TA获得超过3.9万个赞
知道小有建树答主
回答量:3574
采纳率:49%
帮助的人:349万
展开全部
  1. 选中起点A、B右边列对应的区域,

  2. 按组合键ctrl+F3调出”的窗口点选新建,

  3. 在名称栏输入你想要的名称,如“ABC”,点确定。

  4. 在图中求和右边单元格输入公式:=sum(ABC)

  5. 其他求和同理。

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Zhangweijun189
科技发烧友

2019-04-15 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:3021
采纳率:59%
帮助的人:958万
展开全部
Sub 宏1()
Dim r, i%, c, m
c = Cells(2, Columns.Count).End(xlToLeft).Column
r = Range("A" & Rows.Count).End(xlUp).Row
m = Range("A2:A" & r).Find(What:="终点B", SearchDirection:=xlPrevious).Row + 1
Cells(m, 1) = "求和"
For i = 2 To c
Cells(m, i) = Application.Sum(Range(Cells(2, i), Cells(m - 1, i)))
Next
End Sub

追问
你好 可以注解一下么 我是新手小白 很多不懂 谢谢了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柔软的Bp
科技发烧友

2019-04-16 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:3万
采纳率:67%
帮助的人:8938万
展开全部
意思:
点名,会增加,比如现在是1-4,插入1行为5后,自动求和,写在最后1个单元格?
追问
对的
追答

实际用INDIRECT函数就可以

Sub 求和()
For K = 2 To 3
   X = Range("A:A").Find("求和").Row
   Cells(X, K) = WorksheetFunction.Sum(Range(Cells(3, K), Cells(X - 1, K)))
   Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
硅谷少年
2019-04-16 · TA获得超过7556个赞
知道大有可为答主
回答量:7116
采纳率:82%
帮助的人:1425万
展开全部
哪用vba,选中最后一个格子按alt+=,搞定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式