如何在应用程序脚本中通过菜单项传递参数

时间:2018-08-13 14:33:23

标签: google-apps-script google-sheets google-apps-script-menu

我想将一些信息从主要的Google工作表推送到其他需要选择的工作表,我想将其转换为菜单项,所以我添加了:

  ui.createMenu('Push to Sheet').addItem('Select Sheet', 'myFunction').addToUi();

我有一个复杂的功能,其开头为:

function myFunction(PARAM1,  PARAM2) {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  .......

我不清楚如何使用此技术将参数传递给函数。我该如何工作?

2 个答案:

答案 0 :(得分:0)

无法将参数传递给与菜单项关联的功能。不知道为什么会。除非您有多个菜单项使用同一功能,并且您试图确定选择了哪个菜单项,除非您选择了该菜单项。在这种情况下,您将需要一个包装函数,例如myFunction1(),myFunction2()等,分别链接到每个菜单项。然后在myFunction1()中调用myFunction(1)。

答案 1 :(得分:0)

虽然无法将参数传递给新创建的函数,但是您可以传递简单的全局变量,但是必须在根级别定义它们,并且不能从任何后续函数中对其进行任何更改。< / p>

即如果您在根脚本中定义了以下内容

var folderToSearch = ['folderIDString']

您可以在您的

中找到它。
newCreatedMenuFunction () {
Logger.log("folderToSearch: " + folderToSearch);
}

Output 'folderIDString'

并不是说它对您有好处,但是可以使用一些参数。您可能需要重新考虑要达到的目标。