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

Google Apps Script跨工作簿复制范围仅粘贴单个值求助

问题原因

你的代码里用了getValue()和setValue(),这两个方法只能处理单个单元格:

  • sourcesheet.getRange('A9:J35').getValue() 只会返回A9(范围左上角第一个单元格)的值
  • thisSheet.getRange('A7:J33').setValue(sourceCellValue) 只会把值写入A7(目标范围左上角单元格)
修正方案

要批量复制范围数据,得替换成getValues()和setValues(),这两个方法专门处理多单元格范围,操作的是二维数组:

function copyValueandPaste()
{  
    var source = SpreadsheetApp.openById('ID'); // 源工作簿
    var sourcesheet = source.getSheetByName('Payouts'); // 源数据所在工作表
    // 用getValues()获取整个范围的二维数组数据
    var sourceRangeValues = sourcesheet.getRange('A9:J35').getValues(); 
    var thisBook = SpreadsheetApp.getActive(); // 当前活动工作簿
    var thisSheet = thisBook.getSheetByName('Template'); // 目标工作表
    // 用setValues()把二维数组写入目标范围
    thisSheet.getRange('A7:J33').setValues(sourceRangeValues); 
} 
关键说明
  • getValues() 返回的是二维数组,结构对应源范围的行和列,比如[[A9,B9,...J9], [A10,B10,...J10], ..., [A35,B35,...J35]]
  • setValues() 要求传入的数组结构和目标范围完全匹配(行数、列数一致),你这里源范围A9:J35和目标A7:J33都是27行10列,刚好匹配,不需要额外调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:14:54