You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Apps Script中获取自定义菜单按钮的显示值?

问题解答:Google Sheets自定义菜单点击时获取按钮显示文本

直接通过默认的菜单绑定方式,无法让触发的函数InstallFAQ1直接获取到菜单的显示文本“FAQ LVL 1”,因为菜单绑定的函数不会自动接收菜单文本作为参数。不过可以通过以下方法实现需求:

方法:通过闭包传递菜单文本

修改菜单创建代码,利用闭包给触发函数传递菜单显示文本,具体代码如下:

function onOpen(e) {
  const ui = SpreadsheetApp.getUi();
  const wozMenu = ui.createMenu('WOZTELL');

  // 封装生成菜单触发函数的工具函数
  function getMenuActionHandler(menuText) {
    return function() {
      // 直接使用menuText变量,即点击的菜单显示文本
      InstallFAQ1(menuText);
    };
  }

  // 添加菜单项时绑定封装后的处理函数
  wozMenu.addItem('FAQ LVL 1', getMenuActionHandler('FAQ LVL 1').getName())
         .addToUi();
}

function InstallFAQ1(menuText) {
  // 此处可获取点击的菜单显示文本
  console.log('点击的菜单文本:', menuText);
  // 原有业务逻辑写在这里
}

原理说明

  • getMenuActionHandler函数接收菜单文本参数,返回一个保留该文本引用的匿名函数。
  • 调用getName()获取匿名函数的系统生成名称,满足addItem对函数名字符串的要求。
  • 用户点击菜单时,对应的匿名函数触发,调用InstallFAQ1并传入菜单文本,实现业务函数对菜单显示内容的获取。

内容的提问来源于stack exchange,提问作者Tferrandis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:25:46