![](/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.