Excel UDF: Mengubah Suai Sel Tanpa Mengembalikan Tatasusunan
Salah satu batasan fungsi takrif pengguna (UDF) dalam Excel ialah ketidakupayaan mereka untuk mengubah suai secara langsung sel atau sifat buku kerja. Walau bagaimanapun, penyelesaian wujud, walaupun rumit, yang membolehkan UDF mencapai pengubahsuaian sel.
Menggunakan Pemasa Windows dan Aplikasi untuk Menghindari Sekatan UDF
Untuk mengubah suai sel dari dalam UDF, gabungan pintar pemasa Windows dan Application.OnTime pemasa digunakan. Pemasa Windows memulakan pemasa Application.OnTime, yang melaksanakan kod dengan selamat apabila Excel membenarkan pengubahsuaian sel.
Pelaksanaan
UDF memanggil rutin pemasa Windows, yang menjadualkan Aplikasi.Pemasa OnTime dengan parameter masa tertentu. Rutin Application.OnTime kemudian melaksanakan kod yang tidak boleh dilakukan dalam UDF itu sendiri.
Kod Contoh
Kod berikut menunjukkan cara penyelesaian ini dilaksanakan:
Public Function AddTwoNumbers(ByVal Value1 As Double, ByVal Value2 As Double) As Double AddTwoNumbers = Value1 + Value2 ' Schedule the Windows timer mWindowsTimerID = SetTimer(0&, 0&, 1, AddressOf AfterUDFRoutine1) End Function Public Sub AfterUDFRoutine1() ' Schedule the Application.OnTime timer mApplicationTimerTime = Now Application.OnTime mApplicationTimerTime, "AfterUDFRoutine2" End Sub Public Sub AfterUDFRoutine2() ' Perform modifications outside the UDF '... End Sub
Kaveat
Penyelesaian ini ialah bukan tanpa batasan. UDF yang menggunakannya tidak boleh meruap, melepasi fungsi meruap atau sel rujukan yang mengandungi formula/fungsi meruap. Selain itu, pengubahsuaian sel hanya akan berlaku apabila pemasa dicetuskan dalam persekitaran yang selamat (tiada dialog terbuka atau pengeditan sel).
Atas ialah kandungan terperinci Bolehkah Excel UDFs Mengubah Suai Sel Tanpa Mengembalikan Tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!