0

我为此编写了一个代码,但出现错误

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);}

}

我无法找出错误。

4

2 回答 2

0

mSheet.getRange(2, 1, sheetArray.length, 12).setValues(sheetArray)

我遇到了同样的问题并通过遵循“Rep”解决方案解决了它。然后我遇到了另一个问题,并意识到我的列数不同......所以只需返回并将第 12 行更改为工作表中的行数。

还要尽量保持所有工作表的格式相同。

重命名您希望数据组合的工作表

于 2014-11-05T08:55:02.830 回答
0

您需要一张名称中带有“Rep”的表格。

“第一个数组存储所有销售代表工作表。由于某些工作表可能不是销售代表工作表,因此脚本仅在工作表名称具有“-Rep”后缀(例如“JohnDoe-Rep”)时才存储工作表”

代码来源:http ://blog.ditoweb.com/2012/01/consolidate-spreadsheet-sheets-with.html

这就是为什么它不起作用。

于 2013-08-15T08:49:37.780 回答