Excel实现单单元格输入值自动累计求和到另一单元格的功能问询
实现方案
这个需求可以通过Excel VBA的工作表变更事件实现,操作步骤如下:
- 打开目标工作表,按下
Alt + F11调出VBA编辑器 - 在左侧的项目导航栏中,双击你需要应用该功能的工作表(比如Sheet1),打开该工作表的代码编辑面板
- 将以下代码粘贴到编辑面板中:
Private Sub Worksheet_Change(ByVal Target As Range) ' 仅监控A1单元格的内容变更 If Target.Address = "$A$1" Then ' 校验A1输入内容为有效非空数值 If IsNumeric(Target.Value) And Target.Value <> "" Then ' 临时关闭事件响应避免死循环 Application.EnableEvents = False ' B1单元格累加A1的输入值 Range("B1").Value = Range("B1").Value + Target.Value ' 如需输入后自动清空A1保留下面一行,不需要则删除 Target.Value = "" ' 恢复事件响应 Application.EnableEvents = True End If End If End Sub
注意事项
- 保存文件时必须选择
Excel 启用宏的工作簿(*.xlsm)格式,否则VBA代码会失效 - 如果不需要输入数值后自动清空A1,删除代码中
Target.Value = ""对应的行即可 - 如果需要调整监控的输入单元格、累计结果单元格,修改代码里
$A$1、Range("B1")的对应参数即可 - 首次打开文件时如果弹出宏禁用提示,选择「启用内容」即可正常使用功能
内容的提问来源于stack exchange,提问作者Israel Perez Jr
相关产品推荐
相关产品推荐

