2

我有一个脚本用作库,将其加载到我需要的电子表格中。

当我将它添加到电子表格时,我定义了一个 onEdit 和 onLoad 函数,它们调用了库的相应方法。

我需要使用该库的个人工作表来定义一个应该可用于库的全局变量,该变量可能未在工作表的单元格中设置。

我试过设置

var previd = "myid";

在电子表格脚本的开头,但这似乎不起作用。

我该如何解决?

4

1 回答 1

6

脚本之间不共享“全局范围”,它实际上是一个“脚本范围”。

库函数所需的所有变量都必须作为参数传递给这些函数。如果您使用相同的参数调用许多函数,则应考虑将它们包装在object. 一些Apps Script内置函数一样,有optArguments.

您的库上可能还有一个setParameters函数可以将这些变量传递一次(每个运行时),并让它们可用于下一次库调用。像这样的东西:

//on the library script
var clientParams = null;
function setParameters(parameters) { clientParams = parameters; }
function exampleFunc() { return clientParams.previd; }


//on your client script
library.setParameters({previd:'myid', otherParam:'example'});

//then you can call
library.exampleFunc();
于 2012-11-12T04:50:59.253 回答