excel vba 如何求一列单元格的和 并将值保存在最后一个单元格中,以实现纵向自动求和?
5个回答
展开全部
楼主的描述不是很清晰,也就大致写了一个简单的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函数,以及更改其求和范围即可。
展开全部
追问
你好 可以注解一下么 我是新手小白 很多不懂 谢谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哪用vba,选中最后一个格子按alt+=,搞定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询