Google 表格 - 循环通过表格合并数据
Posted
技术标签:
【中文标题】Google 表格 - 循环通过表格合并数据【英文标题】:Google Sheets - Loop through Sheets consolidating data 【发布时间】:2017-05-17 10:30:17 【问题描述】:我在谷歌中循环浏览工作表后得到了一些帮助。
场景 - 我有大约 20 个布局相同的选项卡,我需要从所有选项卡中收集信息并将其放入 1 个主工作表中。 数据从第 2 行(标题)开始,长度可变(如果需要,结束列是 "Z" 列)
代码可以创建一个新选项卡来放置所有数据,也可以创建一个特定选项卡。
(可能需要考虑到我不需要包含一些表格 - 我可以定义这些)
在excel中这将是一个简单的 创建新选项卡(称为摘要) 循环浏览选项卡 如果选项卡名称不在我的例外列表中,则在工作表上复制范围(动态范围) 将范围放在“摘要”选项卡上的下一个可用行上 重复直到完成
任何帮助表示赞赏
【问题讨论】:
【参考方案1】:万一其他人有类似的问题,我设法自己编写了一些代码(可能不是最快的,但它可以完成工作)
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...
【讨论】:
以上是关于Google 表格 - 循环通过表格合并数据的主要内容,如果未能解决你的问题,请参考以下文章