我需要将3张数据复制到同一电子表格中的另一张主表 [英] I need to copy data from 3 sheets to another master sheet in same spreadsheet
问题描述
我为此编写了代码,但收到错误
范围的坐标或尺寸无效。 (第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屋!