gpt4 book ai didi

google-apps-script - 将新工作表添加到 Google 工作簿时发送电子邮件

转载 作者:行者123 更新时间:2023-12-04 18:54:34 25 4
gpt4 key购买 nike

我有一个脚本可以从我们的 CMS 中提取错误报告数据,创建每月存档表并将其作为新标签附加到另一个 Google 表中。新工作簿的工作表名称为“Sheet1”,创建的新选项卡为三月、四月、五月等。当每个月的第一天添加新工作表时,我需要通知我们的团队(我知道每个人都知道这是在本月的第一天,但​​要让他们记住查看新表格非常困难!)。

我遇到了这个脚本:How do I set up notifications for when a new sheet is added in Google Sheets?

我已将工作表名称行更改为; var sheet = ss.getSheetByName('Sheet1');和电子邮件地址。该脚本在我手动运行时有效。单元格 A1 每次增加一个,我收到一封电子邮件。但是,当我刷新 CMS 错误报告上的脚本时,它会创建带有月份名称的新选项卡,但不会触发“通知”功能。我只有一个触发器:通知/来自电子表格/更改。

我觉得我一定是在工作表命名中遗漏了一些东西,但看不到它是什么。

最佳答案

触发器由用户操作触发。脚本事件不会触发它们。您可以通过以下测试脚本看到这一点,其中“doSomething”插入一个工作表,displayEvent 在浏览器消息中显示事件。为 displayEvent 设置 onChange 触发器:手动插入工作表会触发它,但运行“doSomething”不会。

function doSomething() { SpreadsheetApp.getActiveSpreadsheet().insertSheet(); }
function displayEvent(e) { Browser.msgBox(JSON.stringify(e)); }

作为解决方法,将脚本设置为每隔一段时间运行一次,而不是通过触发器(例如 15 分钟)运行。顺便说一句,不是使用单元格 A1 来存储工作表的数量,而是可以将此数字存储在脚本属性中。方法如下:

function notify() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var scriptProperties = PropertiesService.getScriptProperties();
var numSheets = scriptProperties.getProperty('Sheets');
if (numSheets > 0 && ss.getSheets().length > numSheets) {
MailApp.sendMail('someone', 'subject', 'new sheet')
}
scriptProperties.setProperty('Sheets', ss.getSheets().length);
}

关于google-apps-script - 将新工作表添加到 Google 工作簿时发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37310600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com