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

求编写Google Apps Script:指定行范围插入新行时自动应用列公式

解决Google Sheets插入行自动填充公式与固定文本的问题

实现方案

通过Google Apps Script的onChange触发器监听工作表的行插入操作,仅在第6至13行范围内插入新行时,自动为新行的J、K、L、M列设置指定内容和公式,完全避免覆盖底部合计值。

完整代码

function onChange(e) {
  // 仅响应行插入事件
  if (e.changeType !== 'INSERT_ROW') return;

  const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Planning');
  if (!targetSheet) return;

  // 校验插入行是否在目标范围内
  const insertedRow = e.range.getRow();
  if (insertedRow < 6 || insertedRow > 13) return;

  // 为J列设置固定文本
  targetSheet.getRange(`J${insertedRow}`).setValue('estimate');

  // 设置K列计算公式
  targetSheet.getRange(`K${insertedRow}`).setFormula(`=G${insertedRow}*I${insertedRow}`);

  // 设置L列销售税公式
  targetSheet.getRange(`L${insertedRow}`).setFormula(`=IF(H${insertedRow}=TRUE,K${insertedRow}*0.13,0)`);

  // 设置M列总成本公式
  targetSheet.getRange(`M${insertedRow}`).setFormula(`=K${insertedRow}+L${insertedRow}`);
}

配置与说明

  • 绑定触发器:打开脚本编辑器,点击左侧「触发器」图标,创建可安装触发器:
    • 选择函数:onChange
    • 事件源:「从电子表格」
    • 事件类型:「更改」
  • 范围控制:代码通过insertedRow < 6 || insertedRow > 13过滤掉目标范围外的行插入操作,确保仅处理指定区域的新行。
  • 动态公式:所有公式都绑定当前插入行的行号,不会影响底部合计区域的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 13:55:04