我尝试从不同的工作表中复制第一对名称(A2)和电子邮件(B2),然后将其粘贴到主工作表中。
在主表中,我需要将它们复制到另一个下面,所以我想使用 getlastRow() ,以获得第一个值之后的第一个空行粘贴。
此时,即使我设法在主页中没有按特定顺序粘贴值,我也会这样做。
当我运行脚本时,我收到以下错误 - 范围的坐标或尺寸无效
我的代码如下。
function myFunctions() {
var sourceSpreadsheet = SpreadsheetApp.openById(); // source spreadsheet
var sheets = sourceSpreadsheet.getSheets(); // array of sheets
var targetSpreadSheet = SpreadsheetApp.openById();
var targetSheet = targetSpreadSheet.getSheetByName('Main'); //
for(var i=1; i < sheets.length;i++){
var temp = i;
var tempval = sheets[i].getRange(2,1,1,2).getValues();
var lastrow = targetSheet.getLastRow();
var lastcol = targetSheet.getLastColumn();
targetSheet.getRange(lastrow,1,1,lastcol).setValues(tempval[temp]);
}
}
如果您有任何意见,请分享。
提前感谢您的帮助!
答案 0 :(得分:1)
&#34; TS&#34;未定义。
&#34; tempval&#34;是&#34; A2:B2&#34;的二维数组。并且长度为1.因此&#34;的循环为&#34;在1开始显示超出范围的范围。
使用&#34; setValues&#34;的数组是二维数组。 &#34; tempval [温度]&#34;是一维数组。因此发生错误。
&#34; getRange&#34;的文件如下。 https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer)
尽管如此,也许你可能想要。 &#34; LASTROW&#34;和&#34; lastcol&#34;是数据的最后一行和一列。因此,数据会被覆盖到&#34; targetsheet&#34;。
基于以上所述,修改后的脚本如下:
ctx.fillRect(0,0,canvas.width,canvas.height);
我可以问你想要什么吗?