Bolehkah Excel UDFs Mengubah Suai Sel Tanpa Mengembalikan Tatasusunan?

Susan Sarandon
Lepaskan: 2024-11-24 21:48:47
asal
871 orang telah melayarinya

Can Excel UDFs Modify Cells Without Returning Arrays?

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan