0

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

自述解释说,你不能做到这一点,但没有给出为什么一个原因: link

自定义函数返回值,但他们不能在小区外的设定值。在大多数情况下,单元格A1中的自定义函数不能修改单元格A5。但是,如果自定义函数返回一个 双数组,则结果会溢出包含函数 的单元格,并将单元格填充到包含 自定义函数的单元格的下方和右侧。您可以使用包含 return [[1,2],[3,4]];的自定义函数来测试此功能。

任何人都知道是否有这样的好理由?

回答

2

我认为这很合乎逻辑。当你在一个单元格中调用一个自定义函数时,例如A1,你期望函数执行计算(或其他),并将结果放在A1中。如果你想在B1中看到结果,你会在B1中写出相同的公式。

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

在任何情况下,你可以给你的用例,你有你想要使用自定义函数填充不同的单元格。你总是可以用其他方式(不作为公式)调用脚本,并让它修改任何你想要的单元格。

+0

感谢您的回复。我通常理解为什么你会希望一个自定义函数返回指定单元格中的值,而不是为什么他们会为了其他单元格而禁用setValue函数。 – user2595858

+1

出现这种情况:我有2个列表A和B.我的函数将返回A中出现在A中的术语多少次,出现在表单A的列表A旁边。这一切都很好。然后,我试着重新排列A这个词出现的次数,并且仍然列出正确词语旁边的数字。但它不会让我覆盖A.我已经找到了一些解决方法,它们不像我想要的那样直接用作自定义函数。 – user2595858

相关问题