![](/img/trans.png)
[英]Copy sheet to new spreadsheet, Add cell value to end of new spreadsheet name
[英]Sheet Set value the make copy of spreadsheet
我正在尝试从 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); }); }
问题是我在“A2”范围内的工作表中所做的更改未应用到副本中。 有什么建议吗?
谢谢
forEach()
循环中的代码是异步执行的这意味着您的工作表可能会在设置新值之前全部复制。
您可以通过实施强制代码等待的SpreadsheetApp.flush())和Utilities.sleep()请求来避免这种情况。
样本:
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.