【发布时间】:2023-01-24 02:54:15
【问题描述】:
我想在 google 表格中设置一个简单的文件审批工作流程:
- 在 A 列上,我将有一个文件的链接
- 在 B、C、D 列上,我将为团队设置复选框。 选中所有 3 个复选框后,col A 中的文件将移动到特定的 Google 云端硬盘文件夹。
我将此脚本作为宏导入,但出现此错误:“类型错误:无法读取未定义的属性(读取‘范围’)”
- 在最终版本中,文件夹 ID 是正确的
- 我已从服务 Google Drive 和 Google Sheets 添加
function onChange(e) {
if (e.range) {
var checkboxB = e.range.getSheet().getRange(e.range.getRowIndex(), 2).getValue();
var checkboxC = e.range.getSheet().getRange(e.range.getRowIndex(), 3).getValue();
var checkboxD = e.range.getSheet().getRange(e.range.getRowIndex(), 4).getValue();
if (checkboxB && checkboxC && checkboxD) {
var fileLink = e.range.getSheet().getRange(e.range.getRowIndex(), 1).getValue();
var folderId = 'THIS_IS_THE_FOLDER_ID';
var file = DriveApp.getFileByUrl(fileLink);
file.getParents().next().removeFile(file);
DriveApp.getFolderById(folderId).addFile(file);
Logger.log('File ' + file.getName() + ' was moved to folder ' + folderId);
}
}
}
//onEdit trigger google sheet
function onEdit(e) {
onChange(e);
}
【问题讨论】:
-
这是你的确切代码吗?如果您调用
onChange()而参数中没有e,就会发生这种情况。错误是说e未定义。
标签: javascript google-apps-script