【发布时间】:2019-04-17 16:58:13
【问题描述】:
我有 30 个单独的工作表需要合并到一个具有多个选项卡的工作表中。我可以使用以下脚本执行此操作,但每次都会创建一个新工作表。当更新 30 个单独的工作表中的一个或全部时,我只希望此脚本更新或重写以前创建的“主工作表”。
function mergeSheets()
{
/* Retrieve the desired folder */
var myFolder = DriveApp.getFoldersByName("Email Groups").next();
/* Get all spreadsheets that resided on that folder */
var spreadSheets = myFolder.getFilesByType("application/vnd.google-apps.spreadsheet");
/* Create the new spreadsheet that you store other sheets */
var newSpreadSheet = SpreadsheetApp.create("All Districts Email");
/* Iterate over the spreadsheets over the folder */
while(spreadSheets.hasNext()) {
var sheet = spreadSheets.next();
/* Open the spreadsheet */
var spreadSheet = SpreadsheetApp.openById(sheet.getId());
/* Get all its sheets */
for(var y in spreadSheet.getSheets()) {
/* Copy the sheet to the new merged Spread Sheet */
spreadSheet.getSheets()[y].copyTo(newSpreadSheet);
}
}
}
我正在寻找一张包含来自每个地区的标签的表格。这将允许我与单独更新的所有信息共享一张主表。
【问题讨论】:
-
您是否尝试过使用内置的IMPORTRANGE() 函数?创建“主表”后,无需执行任何其他操作。这将在每次编辑导入的文件时(接近)实时更新工作表。
-
非常感谢,我从没想过使用它。我确实需要我创建 30 个单独的选项卡和范围,但它会起作用。
-
您可以随时编写脚本来创建选项卡并添加公式。 ;-)
标签: google-apps-script google-sheets google-sheets-formula