简体   繁体   English

Sheet Set value 制作电子表格的副本

[英]Sheet Set value the make copy of spreadsheet

I'm trying to produce several spreadsheets from a model,我正在尝试从 model 生成多个电子表格,

 function copySpreadSheet() { var filesName = ['file1', 'file2', '...'] filesName.forEach(function copySpreadSheet(fileName) { var spreadsheet = SpreadsheetApp.openById('model_ID'); var sheet = spreadsheet.getSheetByName('REF'); sheet.getRange('A2').setValue(fileName); var destFolder = DriveApp.getFolderById("Folder_ID") DriveApp.getFileById(spreadsheet.getId()).makeCopy(fileName, destFolder); }); }

The problem is that the changes i made in the sheet at range 'A2' are not applied in the copies.问题是我在“A2”范围内的工作表中所做的更改未应用到副本中。 Any suggestions pls?有什么建议吗?

Thank you谢谢

The code within the forEach() loop is executed asynchronously forEach()循环中的代码是异步执行的

This means that your sheets might get all copied before the setting of a new value has taken place.这意味着您的工作表可能会在设置新值之前全部复制。

You avoid this by implementing SpreadsheetApp.flush()) and Utilities.sleep() requests that force the code to wait.您可以通过实施强制代码等待的SpreadsheetApp.flush())Utilities.sleep()请求来避免这种情况。

Sample:样本:

function copySpreadSheet() {
  var filesName = ['file1', 'file2', '...']
  filesName.forEach(function copySpreadSheet(fileName) {
   Logger.log(fileName);
    var spreadsheet = SpreadsheetApp.openById('model_ID');
    var sheet = spreadsheet.getSheetByName('REF');
    SpreadsheetApp.flush();
    sheet.getRange('A2').setValue(fileName);
    SpreadsheetApp.flush();
    var destFolder = DriveApp.getFolderById("Folder_ID")
    Utilities.sleep(1000);
    DriveApp.getFileById(spreadsheet.getId()).makeCopy(fileName, destFolder);
    
  }); 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 将工作表复制到新电子表格,将单元格值添加到新电子表格名称的末尾 - Copy sheet to new spreadsheet, Add cell value to end of new spreadsheet name 将工作表复制到另一个电子表格[Google Apps脚本] - Copy sheet to another spreadsheet [Google Apps Script] Google电子表格将值从一行复制到另一张工作表 - Google spreadsheet copy values from one row to another sheet 将一行从一个Google表格电子表格复制到表单提交中的另一表格 - Copy a row from one Google Sheet Spreadsheet to Another on Form Submit 如何将单元格中的单元格复制到不同电子表格中的工作表? - How do you copy cells from one spreadsheet to a sheet in a different spreadsheet? 将原始数据从工作表“源”复制到另一个工作表“目的地”,并在Google电子表格行的第一列中添加日期 - Copy a raw from sheet 'source' to another sheet 'destination' adding the date in the first column of the row Google spreadsheet 将单元格值复制到另一个工作表以匹配值 - Copy cell value to another sheet for matching value 将 google sheet 复制到 google drive 文件夹中 - Make a copy of google sheet into google drive folder 在编辑时将动态单元格的值复制到另一个工作表 - Copy value of a dynamic cell to another sheet on edit Javascript 查询以使用 Selenium 设置电子表格中的值 - Javascript Query to Set the value in spreadsheet using Selenium
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM