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

Google Apps Script 基于下拉选项移动表格行的代码扩展咨询

适配多选项自动移动的Apps Script修改方案

完整修改后代码

// 固定配置参数
const sourceSheet = "Master"
const check = {
  "col":6, // 监控的下拉列序号
  "del": true // 移动后是否删除Master表的原行,不需要删除就改为false
};
const pasteRange = {
  "start": 1, 
  "cols": 6 // 要复制的列数
};
// 合法的目标工作表名单,和下拉选项完全对应
const validTargetSheets = new Set(["Completed", "Work in progress", "Approval required", "Done"])
 
function onEdit() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet()
  
  if(sheet.getName() === sourceSheet){
    var cell = sheet.getActiveCell();
    var cellCol = cell.getColumn();
    var cellRow = cell.getRow(); 
    
    if(cellCol === check.col){
      const selectedVal = cell.getValue().trim()
      // 校验选中值是否为合法的目标工作表名
      if(validTargetSheets.has(selectedVal)){
        var exportRange = sheet.getRange(cellRow,pasteRange.start,1,pasteRange.cols);
        var pasteDestination = ss.getSheetByName(selectedVal);
        // 工作表存在性校验,避免误删工作表后脚本报错
        if(!pasteDestination) return
        var pasteEmptyBottomRow = pasteDestination.getLastRow() + 1;
        
        exportRange.copyTo(pasteDestination.getRange(pasteEmptyBottomRow,1),
                           SpreadsheetApp.CopyPasteType.PASTE_VALUES);
        
        if(check.del){
          sheet.deleteRow(cellRow);
        }
      }
    }
  }
}

核心调整说明

  • 移除了原代码中硬编码的单个目标表名和单个匹配值,直接读取下拉选中的值作为目标工作表名,自动适配四个选项
  • 新增validTargetSheets集合校验选中值的合法性,只有在下拉选项范围内的值才会触发移动逻辑,避免误操作报错
  • 新增目标工作表存在性校验,避免工作表误删除后脚本运行出错
  • 所有原有配置项(监控列、是否删除原行、复制范围)都保留可灵活调整的配置入口,后续新增下拉选项仅需在validTargetSheets集合里添加对应的工作表名即可

注意事项

  • 请提前在表格中建好四个和下拉选项完全同名的工作表,名称大小写、空格都要完全匹配,避免脚本找不到目标表
  • 如果不需要移动后删除Master表的原行,把check对象里的del值改为false即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:15:03