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

Google Sheet复制粘贴脚本无法完整复制指定范围数据问题求助

问题排查步骤

  • 先检查目标工作表「1st Week」的粘贴区域是否开启了筛选/隐藏列:筛选状态下粘贴仅会写入可见列,隐藏列也会导致对应位置内容无法正常显示,关闭筛选、取消列隐藏后重新运行脚本测试。
  • 验证目标粘贴区域是否存在保护范围/合并单元格:若B2起始的右侧范围设置了编辑权限保护,或存在跨列合并单元格,会导致超出合并/保护范围的内容无法写入,解除保护、拆分合并单元格后重试。
  • 确认源范围尺寸是否符合预期:在你的脚本中新增日志打印源范围的列数,运行后查看日志输出是否匹配你实际需要复制的列数,避免源范围配置笔误:
function copyANDpaste() {
   var spreadsheet = SpreadsheetApp.getActive();
   var originSheet = spreadsheet.getSheetByName('Sheet1');
   var listToCopy = originSheet.getRange('B9:AN26');
   // 新增日志验证列数
   Logger.log('源范围列数:' + listToCopy.getNumColumns());
   Logger.log('源范围行数:' + listToCopy.getNumRows());
   var destinationSheet = spreadsheet.getSheetByName('1st Week');
   // 原代码中destinationColum变量未使用,可直接删除
   listToCopy.copyTo(destinationSheet.getRange('B2'),{contentsOnly:true});
};
  • 若上述排查都无问题,可以改为显式指定目标粘贴范围的尺寸,避免自动匹配异常,修改后代码如下:
function copyANDpaste() {
   var spreadsheet = SpreadsheetApp.getActive();
   var originSheet = spreadsheet.getSheetByName('Sheet1');
   var listToCopy = originSheet.getRange('B9:AN26');
   var targetRows = listToCopy.getNumRows();
   var targetCols = listToCopy.getNumColumns();
   var destinationSheet = spreadsheet.getSheetByName('1st Week');
   // 显式指定目标范围的行、列、尺寸,和源范围完全匹配
   var targetRange = destinationSheet.getRange(2, 2, targetRows, targetCols);
   listToCopy.copyTo(targetRange, {contentsOnly: true});
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:57:01