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

求助Google Sheets Apps Script:按条件替换列值并设置快捷键

Google Sheets Apps Script 实现需求方案

一、自动触发替换:当S列值变为'Review'时更新L列

下面的脚本会在你编辑S列单元格并将其设为'Review'时,自动遍历所有S列为'Review'的行,用对应行W列的值替换L列内容:

function onEdit(e) {
  const editedCell = e.range;
  const sheet = editedCell.getSheet();

  // 仅处理S列(第19列)值变为'Review'的情况
  if (editedCell.getColumn() === 19 && editedCell.getValue() === 'Review') {
    const dataRange = sheet.getDataRange();
    const values = dataRange.getValues();

    // 遍历数据行(跳过第1行表头)
    for (let i = 1; i < values.length; i++) {
      // 检查当前行S列是否为'Review'
      if (values[i][18] === 'Review') {
        // 将W列(索引22)的值写入L列(第12列)
        sheet.getRange(i + 1, 12).setValue(values[i][22]);
      }
    }
  }
}

使用说明:

  1. 打开你的Google表格,点击「扩展程序」→「Apps脚本」
  2. 将上述代码粘贴到脚本编辑器中,保存项目(随便起个名字即可)
  3. 返回表格,编辑S列单元格为'Review',脚本会自动执行更新

二、设置手动执行快捷键

如果你需要手动触发更新操作(而非自动),可以用下面的独立函数并设置快捷键:

1. 手动执行脚本

function updateLColumn() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const dataRange = sheet.getDataRange();
  const values = dataRange.getValues();

  for (let i = 1; i < values.length; i++) {
    if (values[i][18] === 'Review') {
      sheet.getRange(i + 1, 12).setValue(values[i][22]);
    }
  }
}

2. 设置快捷键步骤:

  • 保存上述函数后,返回Google表格
  • 点击「扩展程序」→「自定义功能」→「分配快捷键」
  • 在弹窗中找到updateLColumn函数,设置你偏好的快捷键(比如Ctrl+Shift+R),点击「保存」即可

注意事项:

  • 自动触发的onEdit是简单触发器,有执行时间限制(最长30秒),如果表格数据量极大,建议改用可安装触发器(需要授权)
  • 代码默认表头在第1行,若你的数据从其他行开始,需要调整循环的i起始值
  • 快捷键仅在当前表格中生效,且需要你拥有表格的编辑权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 16:22:56