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

Google Apps Script复制区域并粘贴为值报错问题求助

问题分析与解决办法

报错原因

copyValuesToRange() 方法的参数要求并非直接传入目标Range对象,它的正确参数签名为:
copyValuesToRange(sheet, columnStart, columnEnd, rowStart, rowEnd)
你直接传入了target_range(一个Range对象),不符合方法的参数格式要求,因此抛出参数不匹配的异常。

解决方法

方法1:正确使用copyValuesToRange()

按照方法要求的参数结构,提取目标区域的行、列信息传入:

function copyRange() {
  var sheet = SpreadsheetApp.openById("16S3INZFMQDY3yguNZ2QHvzMQXI1Kf97DkSvcYyZeiHM").getSheets()[1];
  
  var source_range = sheet.getRange("D12:M12");
  var target_range = sheet.getRange("D10:M10");
  
  source_range.copyValuesToRange(
    sheet,
    target_range.getColumn(),
    target_range.getLastColumn(),
    target_range.getRow(),
    target_range.getLastRow()
  );
}

方法2:更直观的取值赋值方式

直接获取源区域的数值数组,再赋值给目标区域,逻辑更清晰易懂:

function copyRange() {
  var sheet = SpreadsheetApp.openById("16S3INZFMQDY3yguNZ2QHvzMQXI1Kf97DkSvcYyZeiHM").getSheets()[1];
  
  var source_range = sheet.getRange("D12:M12");
  var target_range = sheet.getRange("D10:M10");
  
  target_range.setValues(source_range.getValues());
}

补充说明

  • 两种方法均仅复制数值,不会携带公式、格式等额外内容,完全满足你的需求。
  • 方法1适合批量复制到多区域的场景,方法2更简洁,适用于一对一的区域复制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:21:08