我正在谷歌的工作表中循环一些帮助。
场景 - 我有大约20个选项卡都具有相同的布局,我需要从所有这些选项卡中收集信息并放入1个主表单中。 数据从第2行(标题)开始,长度可变(如果需要,结束列为“Z”列)
代码可以创建一个新选项卡来放置所有数据,也可以创建一个特定的选项卡。
(可能需要考虑到我不需要包含一些表格 - 我可以定义这些表格)
在excel中它会很简单 创建新标签(被叫摘要) 循环选项卡 如果选项卡名称不在我的例外列表中,则在工作表上复制范围(动态范围) 将范围放在“摘要”选项卡上的下一个可用行 重复完成
任何帮助表示赞赏
答案 0 :(得分:0)
如果其他人有类似的问题,我设法自己编写了一些代码(可能不是最快的,但是它可以完成工作)
function LoopSheetsMergeData(){
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();
var destsheet = ss.getSheetByName("Summary");//MasterSheet To Merge To
var StartRow = 4//StartRow on all tabs
var StartCol = 1//AllData starts in Column 1
var EndCol = 26//End Column of all data
for (var s in allsheets){
var sheet=allsheets[s]
if (sheet.getName() == "Summary") //Disregard certain tabs
{
}
else
{
var EndRow = sheet.getLastRow();
var copyRng = sheet.getRange(StartRow,StartCol,EndRow,EndCol);
var destlastRow = destsheet.getLastRow();
var nextRow = destlastRow +1
var shtname = sheet.getName();
copyRng.copyTo(destsheet.getRange(nextRow,2));//Row and Column of where to paste the information
var newLastRow = destsheet.getLastRow();//New last Row after pasting the data
destsheet.getRange(nextRow,1,newLastRow,1).setValue(shtname&&newLastRow);//Insert into column 1 for each row copied the name of the sheet it came from
}
}//end of sheets loop.
}// end of function...
function LoopSheetsMergeData(){
var ss = SpreadsheetApp.getActive();
var allsheets = ss.getSheets();
var destsheet = ss.getSheetByName("Summary");//MasterSheet To Merge To
var StartRow = 4//StartRow on all tabs
var StartCol = 1//AllData starts in Column 1
var EndCol = 26//End Column of all data
for (var s in allsheets){
var sheet=allsheets[s]
if (sheet.getName() == "Summary") //Disregard certain tabs
{
}
else
{
var EndRow = sheet.getLastRow();
var copyRng = sheet.getRange(StartRow,StartCol,EndRow,EndCol);
var destlastRow = destsheet.getLastRow();
var nextRow = destlastRow +1
var shtname = sheet.getName();
copyRng.copyTo(destsheet.getRange(nextRow,2));//Row and Column of where to paste the information
var newLastRow = destsheet.getLastRow();//New last Row after pasting the data
destsheet.getRange(nextRow,1,newLastRow,1).setValue(shtname&&newLastRow);//Insert into column 1 for each row copied the name of the sheet it came from
}
}//end of sheets loop.
}// end of function...