You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将单元格内容累加至另一单元格后自动清空原单元格?

解决方案

Google Sheets 修复后脚本

你原来的脚本触发逻辑和偏移规则不符合需求,同时未处理非数值输入的异常,才会出现#NUM!报错。以下是适配你需求的代码:

场景1:固定在A1输入,数值累加至B1

function onEdit(e) {
  // 仅监听A1单元格的编辑
  if (e.range.getA1Notation() === 'A1') {
    const inputVal = Number(e.value);
    // 仅当输入为有效数字时执行累加
    if (!isNaN(inputVal)) {
      const targetCell = e.source.getRange('B1');
      const targetVal = Number(targetCell.getValue()) || 0;
      targetCell.setValue(inputVal + targetVal);
    }
    // 清空输入单元格
    e.range.clearContent();
  }
}

场景2:A列任意行输入,数值累加至同行B列

function onEdit(e) {
  // 仅监听A列的编辑
  if (e.range.columnStart === 1) {
    const inputVal = Number(e.value);
    if (!isNaN(inputVal)) {
      const targetCell = e.range.offset(0, 1);
      const targetVal = Number(targetCell.getValue()) || 0;
      targetCell.setValue(inputVal + targetVal);
    }
    e.range.clearContent();
  }
}

生效步骤

  • 打开你的Google Sheets表格,点击顶部菜单栏「扩展程序」→「Apps脚本」
  • 删除原有代码,粘贴上述适配你场景的代码
  • 点击保存按钮,关闭Apps脚本页面,刷新表格即可生效

Excel 实现方案(可选)

如果切换到Excel,用VBA即可实现相同效果,代码如下:

Private Sub Worksheet_Change(ByVal Target As Range)
    ' 以固定A1输入累加至B1为例
    If Target.Address = "$A$1" Then
        Application.EnableEvents = False
        If IsNumeric(Target.Value) Then
            Range("B1").Value = Range("B1").Value + Target.Value
        End If
        Target.ClearContents
        Application.EnableEvents = True
    End If
End Sub

生效步骤

  • 打开Excel文件,按Alt+F11调出VBA编辑器
  • 左侧项目面板双击你要实现功能的工作表名称
  • 粘贴上述代码,关闭VBA编辑器即可使用

内容的提问来源于stack exchange,提问作者BlackShad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:06:04