2017-01-09 72 views
0

我試圖從不同的工作表複製第一對名稱(A2)和電子郵件(B2),並將它們粘貼到主工作表中。「範圍的座標或尺寸無效。」使用lastRow作爲範圍時出錯

在主表,我需要他們複製一個下其他的,所以我想用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 = ts.getLastRow(); 
    var lastcol = ts.getLastColumn(); 

    targetSheet.getRange(lastrow,1,1,lastcol).setValues(tempval[temp]); 
    } 

} 

請分享,如果您有任何輸入。

在此先感謝您的幫助!

+0

我的代碼是什麼?看起來你應該在那裏有'targetSheet'。 – FTP

+0

你好, 是的,'ts'是targetSheet,但我錯過了重命名它。 –

回答

1
  1. 「ts」未定義。

  2. 「tempval」是具有「A2:B2」的二維數組。並且長度爲1.因此,開始1的「for」循環在Array中顯示超出範圍。使用「setValues」的數組是2維數組。 「tempval [temp]」是1維數組。所以發生錯誤。

  3. 「getRange」的文件如下。 https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer)

  4. 雖然對此,也許你可能想要。 「lastrow」和「lastcol」是數據的最後一行和一列。所以數據被覆蓋到「目標表」的最後一行數據。

根據以上所述,修改後的腳本如下。

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(); // Is ts targetSheet? 
    var lastcol = targetSheet.getLastColumn(); // Is ts targetSheet? 
    targetSheet.getRange(lastrow + 1, lastcol + 1, 1, 2).setValues(tempval); 
    } 
} 

我可以問你想要什麼嗎?

+0

嗨, 感謝您的意見。 根據您提供的信息,我設法找到了我正在尋找的解決方案。 就像我上面說過的,我試圖從多個工作表複製相同的值,並將它們添加到主工作表中,一個在另一個之下。 再次感謝! –

+0

如果您有任何問題,請隨時告訴我。 – Tanaike