gpt4 book ai didi

javascript - Google 应用程序脚本 - 运行自定义功能的自定义菜单

转载 作者:行者123 更新时间:2023-11-30 15:34:12 25 4
gpt4 key购买 nike

我已经在这个项目上发布了很多次,非常感谢我收到的帮助:)

有些东西在躲避我:我有一个 Google 工作表,其中包含 5 个单独的工作表、一个主工作表和 4 个单独的工作表。我为其编写了一个按预期工作的“发送电子邮件”功能,并在 4 个单独工作表中的每个工作表中的某个框包含"is"时触发。

我的问题围绕着将此脚本绑定(bind)到触发器。我之前收到了创建自定义菜单的建议,该菜单在选择时触发脚本。我能够添加菜单,将其绑定(bind)到一个简单的 onOpen() 触发器,并让它出现在工作表中,但它不会运行我的脚本:

function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Send Emails')
.addSubMenu(ui.createMenu('Send Emails For:')
.addItem('Miranda Sheet', 'menuItem1')
.addItem('Piper Sheet', 'menuItem2')
.addItem('Lowes Sheet', 'menuItem3')
.addItem('Golden Sheet', 'menuItem4'))
.addToUi();
}
//actions for menu items are below...

脚本的目的是发送电子邮件,所以我现在知道我要将菜单绑定(bind)到可安装的 onOpen() 触发器。那是我似乎无法确定的部分。如果我更改函数名称并通过资源>所有触发器将 onOpen() 绑定(bind)到该函数,我的菜单就会消失:

function addMenu() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Send Emails')
.addSubMenu(ui.createMenu('Send Emails For:')
.addItem('Miranda Sheet', 'menuItem1')
.addItem('Piper Sheet', 'menuItem2')
.addItem('Lowes Sheet', 'menuItem3')
.addItem('Golden Sheet', 'menuItem4'))
.addToUi();
}

function menuItem1() {
var ui = SpreadsheetApp.getUi();
//Prompt user for confirmation to send emails
var responseMir = ui.alert('Are you sure you want to send emails?', ui.ButtonSet.YES_NO);
// Process the user's response.
if (responseMir === ui.Button.YES) {
//Test alert
//ui.alert('You clicked the first menu item!');
}
}

所以,我的问题有两个:

  1. 我的菜单呢?

  2. 将函数绑定(bind)到触发器后,如何将菜单项绑定(bind)到我的脚本?看起来我应该可以在上面的 If 语句下说“在这里做事”。我错了吗?

谢谢你的想法! (我保证我会越来越好:)

最佳答案

需要说明的是,关于 onOpen() 函数,不应该从菜单中选择可安装的触发器,因为它已经是一个触发器。

一旦编写了函数并且您希望测试选项,您首先需要运行它。您可以通过两种方式执行此操作:

  1. 重新加载电子表格(请注意,这将关闭您的脚本选项卡!)
  2. 运行onOpen()函数

请注意,一旦您运行了添加菜单的功能,如果您更改了菜单本身,则只需重新运行它。如果您对 menuItem1() 进行了更改,则无需重新运行 onOpen(),因为菜单选择仍将运行最新保存的代码在脚本中。

阅读评论我会支持 Zig Mandel,如果您按照这条路线使用菜单启动功能,则不需要 onEdit 触发器,因为它们具有完全相同的目的 —启动数据收集。

关于javascript - Google 应用程序脚本 - 运行自定义功能的自定义菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41817019/

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