调用OpenById出现Invalid argument错误如何跳过并让代码继续执行
解决方案
可以通过两步组合操作实现异常跳过,不中断脚本运行:
- 提前做ID非空校验,先过滤掉空单元格的场景,避免不必要的异常抛出
- 用
try...catch语句包裹可能报错的openById操作,捕获无效ID导致的参数异常后直接跳过对应逻辑即可
修改后的示例代码如下:
function UpdateOld() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Seznam TPM 2"); var ID = sheet.getRange("h2").getValue(); var Nazev = sheet.getRange("g3").getValue(); // 前置校验:ID为空直接跳过后续逻辑 if (!ID || typeof ID !== 'string' || ID.trim() === '') { // 此处可按需添加空ID日志记录逻辑,不需要则直接留空即可 return; // 如果是遍历多行的场景,把return替换为continue即可跳到下一行处理 } var TPM; try { // 可能抛出异常的操作统一放在try块内 TPM = SpreadsheetApp.openById(ID.trim()); } catch (e) { // 捕获到无效ID、无权限等异常时直接跳过后续操作 // 此处可按需添加异常日志记录逻辑,不需要则直接留空即可 return; // 遍历多行场景同样把return替换为continue即可 } // 只有ID有效、表格打开成功才会执行到后续逻辑 SpreadsheetApp.setActiveSpreadsheet(TPM); // 剩余业务逻辑写在下方即可 }
如果你是要批量处理多行的ID,只需要把上述逻辑套入行循环里,空ID/无效ID场景用
continue代替return,就能直接跳转下一行处理,不会中断整个脚本。
内容的提问来源于stack exchange,提问作者Lapky
相关产品推荐
相关产品推荐

