Google 脚本检测表格名称修改

Google 脚本检测表格名称修改

💡 原文中文,约900字,阅读约需2分钟。
📝

内容提要

使用Google Apps Script检测表格名称是否被修改,以避免IMPORTRANGE引用出错。先建立清单记录表格ID和原始名称,再用getSheetId获取ID匹配原始名称,通过getSheetName对比当前名称,若不一致则弹出提醒。

🔎

延伸解读

为什么需要检测表格名称修改

当使用 IMPORTRANGE 函数从其他表格引用数据时,如果被引用的表格名称被修改,引用范围会出错,导致数据无法正确显示。通过 Google 脚本定期检测表格名称是否被修改,可以及时发现问题,避免数据引用错误影响工作。

检测机制的核心步骤

脚本首先建立一个清单,记录表格 ID 和对应的原始名称。然后遍历当前电子表格中的所有工作表,使用 getSheetId 获取每个工作表的 ID,并从清单中查找对应的原始名称。最后通过 getSheetName 获取当前名称,与原始名称对比,若不一致则弹出提醒。

脚本的局限性与注意事项

该脚本仅能检测清单中已记录的表格 ID 对应的名称变化,对于新增的工作表或未在清单中登记的工作表无法检测。此外,脚本需要手动运行或设置触发器定期执行,无法实时监控。使用时需确保清单中的表格 ID 和名称准确无误。

❓

Q&A

为什么需要用 Google 脚本检测表格名称是否被修改?

因为使用 IMPORTRANGE 函数从其他表格引用数据时,如果表格名称被修改,会导致引用范围出错。通过脚本检测可以及时发现问题。

如何用 Google 脚本检测表格名称是否被修改?

先建立一个清单(verifyList),记录表格 ID 和原始名称;然后用 getSheetId 获取表格 ID,从清单中获取原始名称;再用 getSheetName 获取当前名称,对比是否一致,不一致则弹出提醒。

verifyList 清单在脚本中起什么作用?

verifyList 是一个对象,键为表格 ID,值为对应的原始表格名称,用于在检测时提供原始名称进行对比。

检测到表格名称被修改后,脚本会有什么提示?

脚本会使用 SpreadsheetApp.getUi().alert('表格名字被修改') 弹出一个警告框,提示用户表格名称已被修改。

完整的检测脚本代码是怎样的?

const verifyList = { 0: '工作表1', 1650832426: '工作表4' } function detectSheet () { const ss = SpreadsheetApp.getActiveSpreadsheet().getSheets() for (const sheet of ss) { const sheetName = verifyList[sheet.getSheetId()] if (sheetName && sheet.getSheetName() !== sheetName) { Logger.log(sheetName) SpreadsheetApp.getUi().alert('表格名字被修改') return } } }

脚本中如何获取表格的 ID 和当前名称?

使用 sheet.getSheetId() 获取表格 ID,使用 sheet.getSheetName() 获取当前表格名称。

🏷️

标签

➡️

继续阅读