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

Google Sheets脚本需求:点击B/C列时复制A列值到E/F列

Google Sheets OnSelectionChange 脚本实现需求

以下是满足需求的Google Apps Script代码,当点击B列或C列单元格时,自动将对应行A列的值复制到E列或F列的最后空白行:

function onSelectionChange(e) {
  const range = e.range;
  const sheet = range.getSheet();
  const col = range.getColumn();
  const row = range.getRow();

  // 只处理B列(2)或C列(3),且排除表头行(假设表头是第1行)
  if ((col !== 2 && col !== 3) || row === 1) return;

  // 获取对应行A列的值
  const valueToCopy = sheet.getRange(row, 1).getValue();
  if (!valueToCopy) return; // 如果A列值为空,不执行操作

  let targetCol;
  // 确定目标列:B列对应E列(5),C列对应F列(6)
  switch(col) {
    case 2:
      targetCol = 5;
      break;
    case 3:
      targetCol = 6;
      break;
    default:
      return;
  }

  // 找到目标列的最后一个非空行,下一行就是空白行
  const lastRow = sheet.getRange(targetCol + ":" + targetCol).getValues().filter(String).length;
  const targetRow = lastRow + 1;

  // 将值写入目标单元格
  sheet.getRange(targetRow, targetCol).setValue(valueToCopy);
}

代码说明:

  • 触发逻辑:通过onSelectionChange(e)内置触发器响应单元格选中事件
  • 范围限制:仅处理B列(序号2)和C列(序号3),同时跳过第1行(默认表头行,可根据实际表格结构调整)
  • 空值过滤:若选中行的A列内容为空,直接终止操作
  • 列映射规则:点击B列时目标为E列(序号5),点击C列时目标为F列(序号6)
  • 空白行定位:通过过滤目标列的非空值,计算出首个空白行的位置
  • 值写入操作:将A列的目标值写入对应列的空白行

使用步骤:

  1. 打开目标Google Sheets文档
  2. 点击菜单栏「扩展程序」>「Apps 脚本」
  3. 将上述代码粘贴到脚本编辑器,保存项目
  4. 返回表格,点击B列或C列的非表头单元格即可触发功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:14:56