在 Excel 加載項中實現非數組更改 UDF
在 Excel 加載項中,通常禁止更改單元格值的 UDF。但是,可以使用 Windows 計時器和 Application.OnTime 計時器的組合來繞過此限制。
Windows 計時器限制
Windows 計時器無法在儲存格時執行 VBA 程式碼正在編輯或對話方塊已開啟。此限制阻止它們直接修改 UDF 中的單元格屬性。
解決方案:Application.OnTime Timer
為了規避此限制,在 UDF 中使用 Windows 計時器來安排一個 Application.OnTime 計時器。 Application.OnTime 計時器是安全的,僅在未編輯儲存格且未開啟對話方塊時觸發。
UDF 實作
UDF 實現(AddTwoNumbers):
在 AddTwoNumbers UDF 中,照常計算總和。計算後:初程式(AfterUDFRoutine1):
第二個定時器程式(AfterUDFRoutine2):
範例用法
Private Sub TestAddTwoNumbers() Dim Cell As Range Set Cell = Range("A1") ' Cache the reference in the UDF Cell.Formula = "=AddTwoNumbers(1, 2)" ' Trigger the timer routine Cell.Calculate End Sub
以上是如何在 Excel 外掛程式中實現非數組更改 UDF?的詳細內容。更多資訊請關注PHP中文網其他相關文章!