【问题标题】:Why can't you use setValue in a custom function? [closed]为什么不能在自定义函数中使用 setValue? [关闭]
【发布时间】:2026-01-24 06:30:01
【问题描述】:

我真的很好奇,但是有谁知道为什么不能使用 setValue 在自定义函数的不同单元格中写入?

自述文件说明您不能这样做,但没有说明原因: link

自定义函数返回值,但它们不能在它们所在的单元格之外设置值。在大多数情况下,自定义函数在 单元格 A1 不能修改单元格 A5。但是,如果自定义函数返回 双数组,结果溢出包含函数的单元格 并填充下面和右侧的单元格,其中包含 自定义功能。您可以使用包含 返回 [[1,2],[3,4]];.

有人知道这样做是否有充分的理由吗?

【问题讨论】:

    标签: google-apps-script google-sheets custom-function setvalue


    【解决方案1】:

    我认为这很合乎逻辑。当您在单元格中调用自定义函数时,例如 A1,您期望该函数进行计算(或其他)并将结果放入 A1。如果您想在 B1 中查看结果,您可以在 B1 中编写相同的公式。

    正如文档解释的那样,在某些情况下,您可能希望函数返回多个值,在这种情况下,返回二维数组将填充与调用公式的单元格相邻的单元格。

    在任何情况下,您能否给出您想要使用自定义函数填充不同单元格的用例。您始终可以以其他方式(而不是公式)调用脚本并让它修改您想要的任何单元格。

    【讨论】:

    • 感谢您的回复。我一般理解为什么您希望自定义函数返回指定单元格中的值,而不是为什么他们不遗余力地实际禁用其他单元格的 setValue 函数。
    • 它出现的情况:我有 2 个列表 A 和 B。我的函数将返回 A 中的术语出现在 B 中的次数作为出现在列表 A 旁边的数组床单。这一切都很好。然后我尝试按照术语出现的次数对 A 重新排序,并且仍然在正确术语旁边列出数字。但它不会让我覆盖 A。我已经找到了一些解决方法,它们只是不像我想要的自定义函数那样直接使用。
    最近更新 更多