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

Google Sheets勾选CheckBox时复制单元格内容到其他位置的实现方法

Google Sheets勾选复选框后复制内容的实现方案

原有代码问题排查

你原有单选逻辑已经生效,问题出在勾选后的赋值逻辑:你错误将选中行号写入了D4:D6的复选框区域,没有实现目标内容复制的效果,只需调整勾选触发后的逻辑即可。

修改后完整代码

function onEdit(event) {
  // 保留原有单选复选框逻辑
  try {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = event.range.getSheet();
  
    if( sheet.getName() === 'Sheet1' ) { 
      if( event.range.getColumn() === 4 ) { 
        var range = sheet.getRange(4,4,3,1);
        var checks = range.getValues();
        var valid = range.getDataValidations();
        for( var i=0; i<checks.length; i++ ) { 
          if( valid[i][0].getCriteriaType() === SpreadsheetApp.DataValidationCriteria.CHECKBOX ) 
            checks[i][0] = false;
        }
        range.setValues(checks);
        event.range.setValue(event.value);

        // 新增内容复制逻辑
        if( event.value === "TRUE" ) {
          // 可自定义:要复制的源列序号,A=1,B=2,C=3以此类推
          const sourceCol = 2;
          // 可自定义:复制后内容写入的目标单元格
          const targetCell = sheet.getRange("F2");
          // 读取勾选行对应列的内容,写入目标单元格
          const selectedRow = event.range.getRow();
          const copyContent = sheet.getRange(selectedRow, sourceCol).getValue();
          targetCell.setValue(copyContent);
        }
      }
    }
  }
  catch(err) {
    SpreadsheetApp.getUi().alert(err);   
  }
}

参数调整说明

  • 如需复制其他列内容,修改sourceCol的数值对应目标列序号即可
  • 如需修改内容写入位置,修改targetCell的单元格地址即可
  • 如需复制多列内容,新增多组读取、赋值的逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:18:03