Google Apps脚本,用于将多个工作表中的数组复制到单个状态摘要工作表中

艾德丽安(Adrienne)

我一直在尝试找到可以复制用于目的的脚本(对我的工作表进行了一些修改),但是没有什么能完全满足我的需要,而且我没有编码技能可以从头开始编写它。

我有一个包含多个工作表的Google电子表格,我们将不断添加新工作表,每发布一个新产品一个。每个工作表(包括从模板创建的新工作表)都具有该产品启动准备状态的“概览”摘要。它始终位于每张纸上的M3:M10。

我有一个状态摘要表,我想从每个表中粘贴在M3:M10中找到的信息。这将使我们能够在状态摘要中快速查看每种产品在发布前的运行情况,而无需我们检查每个特定工作表的标签。

这是我理想的情况:

  • 该脚本将遍历工作簿中包含的每个工作表,但跳过名为“状态摘要”的工作表。
  • 脚本将从每张图纸中提取M3:M10中的数据
  • 脚本会将M3:M10数据存储在“状态摘要”中,从而在A2:H2上组织信息(我的列标签为A1:H1)。例如:工作表1上的M3数据将存储在状态摘要中的A2中,工作表1中的M3数据将存储在状态摘要中的B2中,等等。
  • 脚本将为每个新工作表自动使用换行。例如:工作表1上的M3数据将在状态摘要中的A2中,工作表2中的M3数据将在状态摘要中的A3中,等等。

我不需要包含的床单名称。

有人能为我写这个吗?我正在尝试教自己如何编写这些脚本,因此,对每个部分的作用进行一些“ //”解释将大有帮助。感谢您的光临!

库珀

尝试这个:

function atAGlance() {
  var ss=SpreadsheetApp.getActive();
  var excl=['Status Summary'];
  var sh=ss.getSheetByName('Status Summary');
  var shts=ss.getSheets();
  var n=1;
  for(var i=0;i<shts.length;i++) {
    if(excl.indexOf(shts[i].getName())==-1){
      var v1=shts[i].getRange("M3:M10").getValues();
      var v2=transpose(v1);
      sh.getRange(1 + n++,1,v2.length,v2[0].length).setValues(v2);
    }
  }
}
//https://stackoverflow.com/a/16705104/7215091
function transpose(a)
{
  return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}

得到了来自转置[ https://stackoverflow.com/a/16705104/7215091] https://stackoverflow.com/a/16705104/7215091

此版本允许您从流程中排除工作表,并且可以按以下testAtAGlance()函数中所示的方式运行它。我使用的示例排除了“状态摘要”和“全局”。

function testAtAGlance() {
  atAGlance(['Status Summary','Globals']);
}

function atAGlance(excl) {
  var excl=excl || ['Status Summary'];
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Status Summary');
  var shts=ss.getSheets();
  var n=1;
  for(var i=0;i<shts.length;i++) {
    if(excl.indexOf(shts[i].getName())==-1){
      var v1=shts[i].getRange("M3:M10").getValues();
      var v2=transpose(v1);
      sh.getRange(1 + n++,1,v2.length,v2[0].length).setValues(v2);
    }
  }
}
//https://stackoverflow.com/a/16705104/7215091
function transpose(a)
{
  return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Google脚本:在工作表中的工作表之间复制数据-copyTo()不起作用

Google脚本创建新工作表文件并将其移动到特定文件夹,然后将内容和2个选项卡从活动工作表复制到新创建的文件中

使用Google Scripteditor将工作表中的选定范围复制到同一工作表中的其他位置

如何将一个Google工作表复制到另一个Google工作表

从Google工作表复制A1值,然后复制到其他Google工作表的B列中的第一行

使用Google Apps脚本从Google表格数据表复制到Google文档表

如果工作表1和工作表2中都存在值,则复制行,并将其粘贴到工作表3中。Google表格。Google Apps脚本

使用Google工作表脚本时,如何在不创建新工作表副本的情况下将电子表格的工作表复制到另一个电子表格中?

BigQuery脚本,用于使用联合查询将Google Cloud Postgres表复制到BigQuery

根据Google工作表中的单元格值将行复制到另一个工作表

使用Google Apps脚本复制工作表范围中的某些行

将工作表复制到另一个电子表格[Google Apps脚本]

将特定行上的第n列从一个工作表复制到另一个工作表(在Google表格中)

Google应用程序脚本可将列值复制到其他工作表

如何将整行从Google工作表自动复制到另一工作表

将独立的Google应用脚本绑定到Google工作表

将脚本运行到特定工作表 - Google 工作表

使用 Google Apps 脚本将 kmz 中的数据写入工作表

Google Sheets onEdit - 尝试通过更改同一行中列的值来将一行复制到新工作表

如何使用 Google Apps Script 将一系列选定数据复制到同一工作表中的最后一行数据之后?

用于将标签复制到新工作表的 Google 工作表 appscript

Google Scripts:当复选框为真时,将行从工作表 A 复制到工作表 B。当复选框为假时,从工作表 B 中删除复制的行

用于在 Google 表格中合并多个工作表的带过滤器的数组公式 - 空工作表问题

用于将工作表中的事件添加到日历的 Google 脚本不起作用

Google Sheets - 如何将单元格复制到新工作表并保持参考

将数据匹配从一张工作表复制到特定行范围内的另一张工作表 Google 应用脚本

将单元格值复制到另一个 Google 工作表的 Google 脚本

将电子表格文件中的工作表复制到 Google Drive 文件夹

Google Sheets Apps 脚本:将选定的单元格复制到新的工作表中