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

Google Sheets下拉按钮脚本需求:选中Submitted时自动复制行至另一工作表

Google Sheets脚本:下拉切换为"submitted"时自动复制行到Sheet2

实现步骤

  • 打开目标Google表格,点击顶部菜单的「扩展程序」>「Apps脚本」
  • 删除编辑器里的默认代码,粘贴下方完整脚本
  • 点击编辑器顶部的「保存」按钮,给脚本命名(例如SubmitRowCopier)
  • 首次运行需授权:点击「运行」,按提示完成权限验证(属于正常的Google脚本权限,放心授权)

完整脚本代码

function onEdit(e) {
  // 定义目标工作表
  const sourceSheet = e.source.getSheetByName("Sheet1");
  const targetSheet = e.source.getSheetByName("Sheet2");
  
  // 判断触发编辑的是否是Sheet1,且目标列是下拉列(这里默认是A列,根据你的实际列修改数字:B=2, C=3...)
  if (!sourceSheet || e.range.getSheet() !== sourceSheet || e.range.getColumn() !== 1) return;
  
  // 获取当前单元格的值
  const status = e.value;
  
  // 仅当状态切换为"submitted"时执行复制
  if (status === "submitted") {
    // 获取当前行的所有数据
    const rowData = sourceSheet.getRange(e.range.getRow(), 1, 1, sourceSheet.getLastColumn()).getValues()[0];
    // 将数据追加到Sheet2的最后一行
    targetSheet.appendRow(rowData);
    
    // 可选:如果需要标记已复制的行(比如把Sheet1的该行状态标为已复制,避免重复触发)
    // sourceSheet.getRange(e.range.getRow(), e.range.getColumn()).setValue("copied");
  }
}

关键说明与优化

  • 修改下拉列位置:如果你的下拉菜单不在A列,把脚本里的e.range.getColumn() !== 1中的1改为对应列的数字(比如B列填2)
  • 避免重复复制:如果担心同一行多次切换到"submitted"导致重复复制,可以取消脚本里最后一行的注释,将Sheet1中该行的下拉值改为copied(需要先在下拉选项里添加copied,或者根据需求调整)
  • 兼容表单/抽屉录入:onEdit触发器会响应所有单元格编辑操作,包括表单提交、抽屉按钮触发的内容修改,无需额外配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:00:04