簡體   English   中英

返回值將覆蓋自身的Excel VBA UDF

[英]Excel VBA UDF that return value will override itself

我可以在Excel VBA中編寫UDF的功能,該函數的返回值將覆蓋調用它的單元格值嗎?

該函數通過sql請求獲取信息。 在這種情況下,它僅是主數據,例如項目描述。 如果用戶將在許多單元格的工作表中使用此功能,則每次更改內容時,excel都會重新計算單元格值。 這種方法的性能很差,通常只需要一次獲取信息,在這種情況下就不必更新。

我以為可以使用application.caller.address方法來獲取調用該函數的地址,但似乎無法在函數內為此地址設置單元格值。 因此,該函數的返回值應覆蓋運行該函數的原始公式。

這可能嗎

謝謝你的幫助

沒有。

您可能已經注意到Excel單元格具有多層。

一種是“價值”。 您可以分配的另一個公式。

函數返回一個值,因此返回值僅訪問此層。 因此,您無法返回公式的替換項,因為它位於另一層。

函數與子函數的返回值不同,子函數不返回任何內容。 由於您具有“一次性使用”的行為,因此子函數比函數更適合您的需求,因為您不想返回值,而是要刪除或替換單元格(公式)中的某些內容。

但是,這並不意味着您不能使用函數來執行此操作-但仍不能使用返回值。 但是,如果要使用這樣的函數,則需要在數據刷新時重寫整個公式。

我想你可能錯過了一個讓自己笑的觀點。 Excel本身具有這種功能。 但這不是功能。

復制單元格並粘貼它們,但使用“僅值”。

完全具有相同的效果。

同樣在重新計算方面...為什么不將其關閉? 您不必每次都重寫該函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM