【发布时间】:2020-10-31 17:13:38
【问题描述】:
我在 Google 表格中有一个自定义函数,它使用 Range.map 来检查参数是多单元格范围还是单个值(或单个单元格范围)。我在一年前写了它,并且有一段时间没有回到这个功能,但我今天注意到它不起作用。 rangeVariable.map 返回 undefined,rangeVariable.length 也是如此。
如果它们不再工作,或者即使它们被确认不再工作,我找不到关于用什么替换它们的文档
function FormattedEmail(DisplayName, Email, Separator) {
var sep = Separator == null ? ',' : Separator;
if (DisplayName.map && Email.map) { //Both DisplayName and Email are ranges
if (DisplayName.length != Email.length) { //DisplayName and Email ranges must match
已更新以包含来自 TheMaster 的信息:
作为参数传递给自定义函数的范围应该作为数组传递,因此任何数组方法都应该有效,包括 .map。然而,变量似乎不是一个数组,而是一个对象。 https://developers.google.com/apps-script/guides/sheets/functions#arguments
【问题讨论】:
-
range类上没有.map函数。从来没有。 -
检查
console.log(typeof value),如果value是一个范围对象,它将返回range。您能确认您使用的是哪个环境吗?犀牛还是v8?可能是 Rhino 有一些奇怪的声明。 -
在自定义函数中,范围永远不会被传递。只有范围的值作为数组传递。
-
无论如何,结束这个讨论。始终建议在任何编程语言中使用官方文档和最佳实践。现在我们试图证明你所说的从未存在过。但相反,您应该寻找一个确实存在的解决方案。
-
你应该edit你的问题来显示函数是如何被调用的。
标签: google-apps-script google-sheets custom-function