我有一个非常庞大的工作簿,包含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");
我正在寻找一个脚本,它将完成我所拥有的但是在某种循环中。我拥有它的方式是错的。
你想在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
}
这将允许您浏览电子表格文件中的每个工作表,并在每个工作表中执行相同的任务!