【发布时间】:2018-03-14 15:58:40
【问题描述】:
对于我正在进行的一个项目,我创建了一个触发器来在每年年初运行我的 makeCopy() 函数。目标是制作电子表格的副本并将其保存在我的驱动器中已创建的文件夹中。在这个函数中,我还为新年创建了一个新文件夹。
function makeCopy(){
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var d = new Date();
var year = d.getYear();
var FolderName = "Time Off Request - " + year;
DriveApp.createFolder(FolderName);
year = year - 1;
var FileName = "Copy of Time Off Request - " + year;
Logger.log(FolderName);
FolderName = "Time Off Request - " + year;
var FolderID = DriveApp.getFoldersByName(FolderName).next().getId();
Logger.log(FolderID);
var destFolder = DriveApp.getFolderById(FolderID);
Logger.log(destFolder);
DriveApp.getFileById(sheet.getId()).makeCopy(FileName, destFolder);
}
这段代码实际上是第一次运行和工作。但是,每次我尝试再次测试它时,我都会收到错误消息,“无法检索下一个对象:迭代器已到达末尾。”在我尝试获取文件夹 ID 的那一行。如何修复此错误并获取驱动器中文件夹的文件夹 ID,以便将电子表格复制到该文件夹。
【问题讨论】:
-
您在定义之前记录文件夹名称...名称可能不正确,否则您的代码应该可以正常运行。您可以使用 try/catch 结构来防止错误停止执行。
-
我在记录之前在脚本顶部定义了文件夹名称。然后我重新定义它,以便年份发生变化,因为正在创建的文件夹具有相同的名称,只是提前一年,这是唯一的区别。
-
是的,我发现了错误,Serge!文件夹名称不正确。
标签: google-apps-script google-drive-api