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

相關問題