Google Sheets宏需求:新增行时自动填充列(XLOOKUP与状态设置)
实现Google Sheets新增行自动填充公式与状态列(仅针对'Outstanding'工作表)
解决方案:Google Apps Script 实现自动操作
以下脚本专门针对Outstanding工作表,在新增行时自动完成你需要的两项功能:
function onRowAdd(e) { const targetSheetName = 'Outstanding'; const sheet = e.source.getActiveSheet(); // 仅响应目标工作表的行插入事件 if (sheet.getName() !== targetSheetName || e.changeType !== 'INSERT_ROW') return; const newRow = e.range.getRow(); // 1. 为A列对应行设置XLOOKUP公式 const xlookupFormula = `=XLOOKUP(B${newRow},Subledgers!$B$3:$B$58,Subledgers!$C$3:$C$58)`; sheet.getRange(`A${newRow}`).setFormula(xlookupFormula); // 2. 将L列对应行设置为当前工作表名称 sheet.getRange(`L${newRow}`).setValue(targetSheetName); }
脚本配置步骤
- 打开目标表格,点击顶部菜单栏扩展程序 > Apps 脚本,进入脚本编辑器。
- 清空默认的
Code.gs内容,粘贴上述代码。 - 点击编辑器顶部的保存按钮,为脚本命名(例如
AutoFillOnRowAdd)。 - 设置可安装触发器:
- 点击左侧的触发器图标(时钟样式)。
- 点击添加触发器,配置以下参数:
- 运行函数:
onRowAdd - 部署类型:Head deployments
- 事件源:从电子表格中
- 事件类型:更改时
- 运行函数:
- 点击保存,按提示完成授权即可。
功能说明
- 仅在
Outstanding工作表插入新行时触发,不影响其他工作表操作。 - XLOOKUP公式的数据源范围固定为
Subledgers!$B$3:$B$58和Subledgers!$C$3:$C$58,仅B列的引用行号随新增行自动匹配。 - L列自动填充为
Outstanding,与你已有的移行宏兼容,后续行移动后可正常更新状态。
内容的提问来源于stack exchange,提问作者Sydney
相关产品推荐
相关产品推荐

