从代码编辑器运行函数不会检索参数。在这种情况下,参数将始终未定义。onEdit()
对于使用简单触发器等情况也是如此。获取传递给函数的参数的唯一方法是在电子表格单元格中输入有效的自定义函数。
如果要从代码编辑器测试自定义函数的代码,则必须“硬编码”参数值。
此外,Logger.log()
当在工作表中计算自定义函数时,不会将任何内容记录到日志中。
从一个有效的简单自定义函数开始,并以此为基础。
如果要将范围传递到自定义函数的代码中,则必须了解什么是二维数组:
二维数组:
[ [inner Array One], [inner Array Two], [etc] ]
范围内的数据被放入一个二维数组中。有一个外部数组,内部数组。内部数组的元素数与范围内的列数一样多。
[ ['single value from first column', 'single value second column'] ]
上述二维数组仅适用于 1 行两列。
因此,要创建一个简单的自定义函数作为测试,请创建一个函数:
function myCustomFunction(argOne) {
return argOne[0][0];
};
如果范围是 A1:B5,自定义函数将返回 A1 中的值;
=myCustomFunction(A1:B5)
唯一确定的方法是,如果您的参数被传递到 .gs 服务器函数中,那么您是否得到了返回结果。
有些输入您不能使用。如果您使用不允许的输入,那么(引用文档):
如果自定义函数尝试基于这些 volatile 内置函数之一返回值,它将无限期地显示 Loading...。
例如,您不能使用 NOW() 或 RAND() 作为参数。