我已經寫了碼本,但得到的誤差我需要從3片的數據複製到另一個主片在同一個電子表格
The coordinates or dimensions of the range are invalid. (line 44)
代碼:
function updateMaster() {
var repArray = new Array();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var allSheets = ss.getSheets();
// build array of all sheets
for (i in allSheets) {
if ((allSheets[i].getName()).match(/.*?\-Rep$/))
{repArray.push(allSheets[i].getName());}
}
// store all sheets in array
var sheetArray = [];
// loop through all rep sheets
for (var j in repArray) {
// get each sheet
var tempSheet = ss.getSheetByName(repArray[j]);
// get sheet data
var dataRange = tempSheet.getDataRange().getValues();
// remove the first header row
dataRange.splice(parseInt(0), 1);
// append sheet data to array
var sheetArray = sheetArray.concat(dataRange);
}
// Time to update the master sheet
var mSheet = ss.getSheetByName("summary");
// save top header row
var headerRow = mSheet.getRange(1,1,1,12).getValues();
// clear the whole sheet
mSheet.clear({contentsOnly:true});
// put back the header row
mSheet.getRange(1, 1, 1, 12).setValues(headerRow);
這是我在寫入主表時發生錯誤:
// write to the Master sheet via the array
mSheet.getRange(2, 1, sheetArray.length, 12).setValues(sheetArray);
// force spreadsheet updates
SpreadsheetApp.flush();
// pause (1,000 milliseconds = 1 second)
Utilities.sleep("200");
// delete empty rows at bottom
var last = mSheet.getLastRow();
var max = mSheet.getMaxRows();
if (last !== max) {mSheet.deleteRows(last+1,max-last);}
}
我無法連接找出錯誤。任何幫助表示讚賞。我是新來的這個需要幫助儘快。
第一猜您試圖刪除超出邊界,或無效的數字行,什麼是最後和最大的價值? – Terry 2012-08-14 07:47:02
離開那個沒有給出任何錯誤的部分,它在mSheet.getRange(2,1,sheetArray.length,12).setValues(sheetArray);範圍的座標或尺寸無效。 – 2012-08-14 07:49:19
你讓我感到困惑,說「這是我得到的錯誤」,然後把另一段代碼。現在,這更清晰了:您不必使用列數/行數來設置數據,只需使用具有行和列引用的範圍,如下所示:mSheet.getRange(1,1).setValues( headerRow); – Terry 2012-08-14 07:51:18