Google apps script 如何创建Google脚本循环以激活和复制工作簿中每个选项卡的数据

Google apps script 如何创建Google脚本循环以激活和复制工作簿中每个选项卡的数据,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个电子表格,有X张表(表的数量将不断变化)。每张表中的数据格式相同。我想创建一个宏来激活电子表格中的每个工作表,并将特定单元格中的数据拉到一个新工作表中(本质上,我是将每个工作表中的信息合并到一个位置)。我了解了如何使用getSheetByName()激活工作表,但是工作表的名称和数量会定期更改。我希望创建一个循环,可以执行以下操作: 激活第一张图纸 将数据从该工作表中的几个单元格复制到“仪表板”工作表中 激活下一页 将数据从该工作表中的几个单元格复制到“仪表板”工作表中 重复此操作,直到

我有一个电子表格,有X张表(表的数量将不断变化)。每张表中的数据格式相同。我想创建一个宏来激活电子表格中的每个工作表,并将特定单元格中的数据拉到一个新工作表中(本质上,我是将每个工作表中的信息合并到一个位置)。我了解了如何使用
getSheetByName()
激活工作表,但是工作表的名称和数量会定期更改。我希望创建一个循环,可以执行以下操作:

  • 激活第一张图纸
  • 将数据从该工作表中的几个单元格复制到“仪表板”工作表中
  • 激活下一页
  • 将数据从该工作表中的几个单元格复制到“仪表板”工作表中
  • 重复此操作,直到所有工作表都已审核 我可以使用下面的代码激活下一张图纸,但是如何在最后一张图纸之后创建一个停止的循环

      var spreadsheet = SpreadsheetApp.getActive();
      spreadsheet.getRange('A2').activate();
      var nextSheetIndex = spreadsheet.getActiveSheet().getIndex() + 1;
      if (nextSheetIndex > spreadsheet.getSheets().length) { nextSheetIndex = 1; }
      spreadsheet.setActiveSheet(spreadsheet.getSheets()[nextSheetIndex - 1], true);
      spreadsheet.getRange('A2').activate();
      nextSheetIndex = spreadsheet.getActiveSheet().getIndex() + 1;
    

    任何提示都将不胜感激

    首先,您不需要激活
    工作表
    来执行更改。由于要迭代
    电子表格中的每个
    工作表
    ,请使用
    getSheets()
    方法检索
    工作表
    实例的
    数组

    然后,使用您喜欢的循环(
    for
    for…in
    forEach()
    ,等等)在每个
    工作表上迭代,并在循环的每次迭代过程中,通过
    getRange(yourRangeReference).getValue()访问要从中提取数据的
    范围值
    并将其复制到目标
    工作表

    如果需要在迭代过程中检查并计算动态更改的工作表数量,请在每个迭代步骤上使用
    getNumSheets()
    方法,如果其结果大于初始值,则访问然后
    push()
    将此工作表推送到
    数组中

    有用的链接

  • 对于
  • 循环(最简单的循环),打开
    
    
  • 电子表格服务的电子表格应用程序
  • 开发商指南
    这些都是非常有用的资源。我认为这个循环会很好地工作。非常感谢。很高兴我能帮上忙,快乐编码!:)