我需要将3张数据复制到同一电子表格中的另一张主表 [英] I need to copy data from 3 sheets to another master sheet in same spreadsheet

查看:87
本文介绍了我需要将3张数据复制到同一电子表格中的另一张主表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为此编写了代码,但收到错误



范围的坐标或尺寸无效。 (第44行)



代码:

  function updateMaster(){
var repArray = new Array();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var allSheets = ss.getSheets();
//创建所有工作表的数组
for(i in allSheets){
if((allSheets [i] .getName())。match(/.*?\-Rep $ /)
{repArray.push(allSheets [i] .getName());}
}

//将所有工作表存储在数组
var sheetArray = [];
//遍历所有代表单
(repArray中的var j){
//获取每个工作表
var tempSheet = ss.getSheetByName(repArray [j]);
//获取工作表数据
var dataRange = tempSheet.getDataRange()。getValues();
//删除第一个标题行
dataRange.splice(parseInt(0),1);
//将表单数据追加到数组
var sheetArray = sheetArray.concat(dataRange);
}

//更新主表单
var mSheet = ss.getSheetByName(summary);
//保存顶部标题行
var headerRow = mSheet.getRange(1,1,1,12).getValues();
//清除整个表格
mSheet.clear({contentsOnly:true});
//放回标题行
mSheet.getRange(1,1,1,12).setValues(headerRow);

这是写入母版页时出错的地方:

  //通过数组
写入主表单mSheet.getRange(2,1,sheetArray.length,12).setValues(sheetArray);
//强制电子表格更新
SpreadsheetApp.flush();
//暂停(1,000毫秒= 1秒)
Utilities.sleep(200);

//删除底部的空行
var last = mSheet.getLastRow();
var max = mSheet.getMaxRows();
if(last!== max){mSheet.deleteRows(last + 1,max-last);}

}

我无法找出错误。任何帮助表示赞赏。

解决方案

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



我面临同样的问题,并通过遵循Rep解决方案来解决它。然后我遇到了另一个问题,并意识到我的列数是不同的......所以回到原处并将no 12更改为表格中的行数。



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



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

I have written a code for this but getting an error

The coordinates or dimensions of the range are invalid. (line 44)

Code:

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

This is where i am getting error while writing to master sheet:

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

}

I am not able to figure out the error. Any help is appreciated. I am new to to this need help asap.

解决方案

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

I faced the same issue and solved it by following the "Rep" solution. Then I ran into another problem and realized that my number of columns was different... so just go back in and change the no 12 to the number of rows you have in your sheet.

Also try to keep the format of the all sheets the same.

Rename the sheet where you would like the data to combine

这篇关于我需要将3张数据复制到同一电子表格中的另一张主表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆