"范围的坐标或尺寸无效。"使用lastRow作为范围

时间:2017-01-09 21:11:58

标签: google-apps-script google-sheets

我尝试从不同的工作表中复制第一对名称(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]);
  }

}

如果您有任何意见,请分享。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

  1. &#34; TS&#34;未定义。

  2. &#34; tempval&#34;是&#34; A2:B2&#34;的二维数组。并且长度为1.因此&#34;的循环为&#34;在1开始显示超出范围的范围。

  3. 使用&#34; setValues&#34;的数组是二维数组。 &#34; tempval [温度]&#34;是一维数组。因此发生错误。

  4. &#34; getRange&#34;的文件如下。 https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer)

  5. 尽管如此,也许你可能想要。 &#34; LASTROW&#34;和&#34; lastcol&#34;是数据的最后一行和一列。因此,数据会被覆盖到&#34; targetsheet&#34;。

  6. 的最后一行数据

    基于以上所述,修改后的脚本如下:

    ctx.fillRect(0,0,canvas.width,canvas.height);
    

    我可以问你想要什么吗?