Excel UDF:修改儲存格而不傳回陣列
在 Excel 中,使用者定義函數 (UDF) 通常傳回值或陣列。但是,在某些情況下,UDF 需要修改其他儲存格而不傳回陣列。這可以透過涉及 Windows 計時器和 Application.OnTime 事件的複雜技術來實現。
問題:
考慮一個名為 New_Years 的 UDF,需要兩年作為輸入並傳回這些年份之間的元旦日期數組。但是,要填入 Excel 中的數組,使用者必須手動選擇儲存格、輸入公式,然後按 Ctrl Shift Enter。此限制會阻止 UDF 自動填寫日期。
解決方案:
儘管 Excel 對 UDF 直接修改單元格有限制,但使用 Windows 計時器和應用程式的解決方法。 OnTime 事件使其成為可能。透過從 UDF 啟動 Windows 計時器,可以安排後續的 Application.OnTime 計時器來執行 UDF 中禁止的操作。
程式碼範例:
以下程式碼示範如何使用 Collection 儲存呼叫 UDF 的儲存格的參考來實現此技術。兩個計時器程式 AfterUDFRoutine1 和 AfterUDFRoutine2 用來處理計時器事件。
用法:
要應用此技術,需要使用 UDF(例如 AddTwoNumbers) ) 可以在常規模組中建立。在 UDF 內,定時器例程啟動,並且呼叫儲存格的儲存格參考儲存在集合中。計時器程式隨後會修改 UDF 範圍以外的所需儲存格。
透過利用 Windows 計時器和 Application.OnTime 事件,可以建立修改儲存格而不傳回陣列的 UDF。該技術可以實現更高的自動化程度,並且無需使用者手動填充數組。
以上是如何修改 Excel UDF 中的儲存格而不傳回數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!