Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah UDF Ubah Bukan Susunan Boleh Dilaksanakan dalam Tambahan Excel?

Bagaimanakah UDF Ubah Bukan Susunan Boleh Dilaksanakan dalam Tambahan Excel?

Susan Sarandon
Susan Sarandonasal
2024-11-16 05:52:03461semak imbas

How Can Non-Array Changing UDFs be Implemented in Excel Add-Ins?

Melaksanakan UDF Bukan Susun Menukar dalam Excel Add-In

Dalam Excel Add-In, UDF yang menukar nilai sel secara amnya adalah dilarang. Walau bagaimanapun, adalah mungkin untuk memintas sekatan ini menggunakan gabungan pemasa Windows dan Aplikasi.Pemasa OnTime.

Penghadan Pemasa Windows

Pemasa Windows tidak boleh melaksanakan kod VBA semasa sel sedang disunting atau dialog dibuka. Had ini menghalang mereka daripada mengubah suai terus sifat sel dalam UDF.

Penyelesaian: Aplikasi.Pemasa OnTime

Untuk memintas pengehadan ini, pemasa Windows digunakan dalam UDF untuk jadualkan pemasa Application.OnTime. Aplikasi.Pemasa OnTime selamat dan hanya dinyalakan apabila sel tidak diedit dan tiada dialog dibuka.

Pelaksanaan UDF

  1. Buat modul biasa: Letakkan kod berikut dalam modul VBA biasa, bukan UDF modul.
  2. Pelaksanaan UDF (AddTwoNumbers): Dalam AddTwoNumbers UDF, hitung jumlahnya seperti biasa. Selepas pengiraan:

    • Cache rujukan sel pemanggil dalam Koleksi.
    • Tetapkan pemasa Windows untuk memulakan rutin pemasa AfterUDFRoutine1.
  3. Rutin Pemasa Pertama (AfterUDFRoutine1):

    • Hentikan pemasa Windows.
    • Jadualkan Aplikasi selamat.Pemasa OnTime untuk AfterUDFRoutine2.
  4. Rutin Pemasa Kedua (AfterUDFRoutine2):

    • Lakukan tugas yang tidak dibenarkan dalam UDF, seperti mengubah suai nilai sel, melumpuhkan pengemaskinian skrin atau menukar mod pengiraan.

Contoh Penggunaan

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

Setelah pengiraan, formula Sel akan ditukar untuk mencerminkan nilai baharu, dengan menetapkan sel di sebelah pemanggil kepada nilai semasanya.

Atas ialah kandungan terperinci Bagaimanakah UDF Ubah Bukan Susunan Boleh Dilaksanakan dalam Tambahan Excel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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