首页 > 解决方案 > getRange 和 setRange 未正确粘贴

问题描述

我正在使用 GAS 来跟踪我的工资。每周,我需要将文件夹 A 中的工作表 A 中的 1X3 数组复制到文件夹 B 中工作表 B 的最后一行,以创建“时间轴”。我从代码中提取了关于 SO 的类似问题的答案。这是我正在使用的代码:

 // source spreadsheet
 var srcSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
 var srcSheet = sourceSpreadSheet.getSheets()[0];

 // destination spreadsheet
 var payDestSpreadSheet = SpreadsheetApp.openById('10kFR2EPO4R--------------------');
 var payDestSheet = payDestSpreadSheet.getSheets()[0]; // This is the first sheet

 // get the contents of a range in srcSheet
 var range = srcSheet.getRange(212,3,1,3); // This is the range C212:E212
 var values = range.getValues();

 // place the value(s) in the last row of the destination sheet
 var lastRow = payDestSheet.getLastRow();
 payDestSheet.getRange(lastRow + 1,1,1,3).setValue(values);

我正在犯一个简单但基本的“菜鸟”错误。该脚本反映了这一点,因为只有第一个值(只有单元格 C212,而不是 C212:E212 的 3 个单元格范围)被粘贴到目标工作表。我想我已经盯着这个太久了,因为这一切都不再有意义了。

有人愿意(轻轻地)让我回到正轨吗?

标签: google-apps-script

解决方案


将最后一行更改为:payDestSheet.getRange(lastRow + 1,1,1,3).setValues(values);


推荐阅读