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

时间:2019-02-13 00:53:40

标签: google-apps-script google-sheets

我有一本相当庞大的工作簿,其中包含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");

我正在寻找一个脚本,该脚本可以执行我所拥有的功能,但是可以实现某种循环。我拥有它的方式是错误的。

1 个答案:

答案 0 :(得分:0)

您要在{{3上使用for [1] 循环或forEach() [2] 循环}}方法。

要使其正常工作, 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
}

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