使用Google Spreadsheet中的脚本从许多不同的工作表中获取特定数据

问题描述 投票:0回答:1

我有一个非常庞大的工作簿,包含300多张。我正试图从每张纸上抓取2个单元格并将该数据移动到主表单上。我将创建一张类似于我的主要购买小纸张的纸张。这是一张测试表

https://docs.google.com/spreadsheets/d/19DoIyBVFLCt7TU5PEZCMcFMCbRcXhKgNc3OBGcUPixk/edit?usp=sharing

现在我有一个脚本可以做到这一点,但它完全没有效率,但我是全新的。我必须为我的每张纸做下面这组代码。所以代码最终超过2000多行......

  sheet.insertRowAfter(49);
  var Date = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SheetName").getRange("J16").getValues();
  DateCell.setValue(Date);
  NameCell.setValue("SheetName");

我正在寻找一个脚本,它将完成我所拥有的但是在某种循环中。我拥有它的方式是错的。

google-apps-script google-sheets
1个回答
0
投票

你想在for方法上使用[1]forEach()循环或[2]Spreadsheet.getSheets()

为此,Master必须是电子表格中的第一张工作表。

 var ss = SpreadsheetApp.getActiveSpreadsheet(); //Gets the current spreadsheet.
var sheets = ss.getSheets(); //Gets a list of all sheets in the current spreadsheet

//Get master for use later by removing the first sheet.
var master = sheets.shift(); 

sheets.forEach(function (sheet){
  //Here we can perform a task on each sheet in our spreadsheet...
  var name = sheet.getRange("A1").getValue(); //Get name from sheet
  var date = sheet.getRange("C7").getValue(); //Get date from sheet

  master.appendRow([name, date]); //append to master sheet
}

这将允许您浏览电子表格文件中的每个工作表,并在每个工作表中执行相同的任务!

© www.soinside.com 2019 - 2024. All rights reserved.