Skrin VBA Mengemas kini Harta

Kemas kini Skrin VBA Excel

Pengemaskinian Skrin VBA adalah harta yang digunakan untuk menghindari atau mencegah gangguan gangguan semasa menjalankan kod dan membuatnya cepat dengan mematikan Pengemaskinian Skrin. Kita boleh mematikan pengemaskinian layar dengan menetapkan harta ini sebagai palsu.

Sering kali kita dapat merasakan skrin excel menjadi gila semasa makro berjalan dan kita hampir kecewa dengan itu. Tetapi bagaimana kita menangani situasi ini dan membuat kod berjalan lebih cepat daripada perkara perlahan yang biasa?

Pengemaskinian Skrin adalah sesuatu yang dapat kita perhatikan semasa makro excel berjalan. Semasa tugas dijalankan, kita dapat melihat layar kita mengemas kini nilai hingga makro menyelesaikan tugas yang diberikan. Apabila skrin kita berkedip atau menyegarkan, ia akan menyebabkan program excel menjadi perlahan dan memerlukan masa lebih lama daripada biasa untuk menyelesaikan tugas.

Di VBA, kami memiliki properti yang disebut "ScreenUpdating" dan kami menetapkan properti ini ke PALSU sehingga akan menghilangkan proses pengemaskinian layar semasa kod sedang berjalan.

Dalam artikel ini, kami akan mengucapkan selamat tinggal pada menonton drama aksi di skrin semasa kodnya sedang berjalan. Hari ini anda akan menjadikan kod anda berjalan lebih cepat dan pantas dari waktu biasa.

Bilakah menggunakan Ciri Mengemas kini Skrin?

Sekiranya anda mempunyai keraguan bila hendak menggunakan teknik ini. Perhatikan perkara di bawah.

  • Semasa anda melancarkan sebilangan besar sel.
  • Menghantar e-mel dari Excel VBA.
  • Beralih antara buku kerja excel.
  • Membuka buku kerja baru.

Bagaimana menggunakan Ciri Pengemaskinian Skrin dalam Kod VBA?

Anda boleh memuat turun Templat Excel Pembaharuan Skrin VBA ini di sini - Templat Excel Layar Kemas kini VBA

Contoh # 1 - Matikan Pengemaskinian Skrin

Sebagai contoh lihat kod di bawah.

Kod:

 Sub Skrin_Updating () Dim RowCount Sebagai Long Dim ColumnCount As Long Dim MyNumber As Long MyNumber = 0 For RowCount = 1 to 50 For ColumnCount = 1 to 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount). Pilih Sel (RowCount, ColumnCount) .Value = MyNumber Next ColumnCount Next RowCount End Sub 

Di atas mempunyai gelung VBA bersarang untuk memasukkan nombor siri dari lajur pertama hingga lajur ke-50 dan sekali lagi kembali dan memasukkan nombor siri bermula dari 51 dari baris kedua hingga lajur ke-50.

Seperti ini, ia akan memasukkan hingga mencapai baris ke-50.

Semasa kod ini berjalan, anda dapat melihat kelipan skrin anda dan anda tidak dapat melakukan apa-apa selain menonton saat-saat gila ini.

Untuk mengelakkan semua ini kita boleh menambah Pengemaskinian Skrin ke SALAH.

Untuk mengakses ciri Pembaruan Skrin terlebih dahulu kita perlu mengakses objek Aplikasi.

Seperti yang dapat kita lihat dengan objek Aplikasi, kita mempunyai banyak sifat dan kaedah. Jadi, pilih Pembaruan Skrin dari senarai IntelliSense.

Catatan: Anda harus menggunakan ciri Pembaruan Skrin segera setelah pengisytiharan pemboleh ubah.

Setelah memilih Layar Mengemas kini harta meletakkan tanda sama (=).

Seperti yang dapat kita lihat dua nilai Boolean iaitu PALSU & BENAR.

Untuk menghentikan kemas kini skrin tetapkan status ke PALSU.

Sekarang, ketika makro mula berjalan pertama, ia akan mengemas kini status pengemaskinian layar menjadi SALAH dan meneruskan ke baris seterusnya.

Oleh kerana Makro melaksanakan Pembaharuan Skrin ke PALSU, skrin tidak akan dikemas kini semasa kod menjalankan tugasnya.

Contoh # 2 -

Sentiasa Tetapkan Pengemaskinian Skrin ke BENAR di Akhir

Saya telah melihat banyak orang menetapkan Skrin Mengemas kini ke PALSU tetapi lupa untuk menetapkannya semula menjadi BENAR pada akhir makro.

Sentiasa tetapkan Kemas Kini Skrin kembali ke BENAR pada akhir makro.

Kod:

 Sub Screen_Updating () Dim RowCount Sebagai Long Dim ColumnCount As Long Dim MyNumber Sebagai Long Application.ScreenUpdating = False MyNumber = 0 For RowCount = 1 to 50 For ColumnCount = 1 to 50 MyNumber = MyNumber + 1 Cells (RowCount, ColumnCount). Pilih Sel (RowCount, ColumnCount) .Nilai = MyNumber Next ColumnCount Next RowCount Application.ScreenUpdating = True End Sub