Daftar Isi:
- Menonaktifkan pemutakhiran layar
- Menonaktifkan perhitungan otomatis
- Menghilangkan pesan peringatan sial itu
- Referensi objek yang disederhanakan
- Menguraikan jenis variabel
- Menggunakan Dengan Akhir Dengan struktur
Video: 6 Ways to Speed up your Excel Macros 2024
VBA untuk Excel 2016 cepat, tapi tidak selalu cepat. (Program komputer tidak pernah cukup cepat.) Teruslah membaca untuk menemukan beberapa contoh pemrograman yang dapat Anda gunakan untuk mempercepat makro Anda.
Menonaktifkan pemutakhiran layar
Saat menjalankan makro, Anda dapat duduk santai dan melihat semua tindakan di layar yang terjadi di makro. Meskipun melakukan hal ini dapat menjadi instruktif, setelah Anda mendapatkan makro bekerja dengan baik, ini sering mengganggu dan dapat memperlambat kinerja makro Anda secara signifikan. Untungnya, Anda dapat menonaktifkan pembaruan layar yang biasanya terjadi saat Anda menjalankan makro. Untuk mematikan pemutakhiran layar, gunakan pernyataan berikut:
Aplikasi ScreenUpdating = Salah
Jika Anda ingin pengguna melihat apa yang terjadi pada titik manapun selama makro, gunakan pernyataan berikut untuk mengaktifkan pemutakhiran layar:
Aplikasi. ScreenUpdating = True
Untuk menunjukkan perbedaan kecepatan, jalankan makro sederhana ini, yang mengisi kisaran dengan angka:
Sub FillRange () Dim r as Long, c Seperti Long Dim Number as Long Number = 0 Untuk r = 1 Untuk 50 Untuk c = 1 sampai 50 Nomor = Nomor + 1 Sel (r, c). Pilih Sel (r, c). Nilai = Nomor Berikutnya c Selanjutnya r End Sub
Anda melihat setiap sel dipilih dan nilainya dimasukkan ke dalam sel. Sekarang masukkan pernyataan berikut di awal prosedur dan jalankan lagi:
Aplikasi ScreenUpdating = Salah
Rentang diisi lebih cepat, dan Anda tidak melihat hasilnya sampai makro selesai berjalan dan pemutakhiran layar (secara otomatis) diatur ke True.
Saat kode debugging, eksekusi program terkadang berakhir di suatu tempat di tengah tanpa Anda mengaktifkan pemutakhiran Layar kembali. Hal ini terkadang menyebabkan jendela aplikasi Excel menjadi tidak responsif. Jalan keluar dari keadaan beku ini sederhana: Kembali ke VBE, dan jalankan pernyataan berikut di jendela Immediate:
Aplikasi ScreenUpdating = True
Menonaktifkan perhitungan otomatis
Jika Anda memiliki lembar kerja dengan banyak formula rumit, Anda mungkin mendapati bahwa Anda dapat mempercepat banyak hal dengan menetapkan mode perhitungan ke manual saat makro Anda dijalankan. Saat makro selesai, setel mode perhitungan kembali ke otomatis.
Pernyataan berikut mengatur mode perhitungan Excel ke manual:
Application. Perhitungan = xlCalculationManual
Jalankan pernyataan berikutnya untuk mengatur mode perhitungan secara otomatis:
Application. Perhitungan = xlCalculationAutomatic
Jika kode Anda menggunakan sel dengan hasil rumus, penghitungan mematikan berarti sel tidak akan dihitung ulang kecuali Anda secara eksplisit memberi tahu Excel untuk melakukannya!
Menghilangkan pesan peringatan sial itu
Seperti yang Anda ketahui, makro secara otomatis dapat melakukan serangkaian tindakan. Dalam banyak kasus, Anda bisa memulai makro dan kemudian pergi nongkrong di ruang istirahat sementara Excel melakukan hal itu. Beberapa operasi Excel, bagaimanapun, menampilkan pesan yang memerlukan respons manusia. Jenis pesan ini berarti Anda tidak dapat meninggalkan Excel tanpa pengawasan saat menjalankan makro Anda - kecuali jika Anda mengetahui trik rahasia itu.
Anda dapat menginstruksikan Excel untuk tidak menampilkan jenis peringatan ini saat menjalankan makro.Trik rahasia untuk menghindari pesan peringatan ini adalah memasukkan pernyataan VBA berikut ke makro Anda:
Aplikasi. DisplayAlerts = False
Excel mengeksekusi operasi default untuk jenis pesan ini. Dalam kasus menghapus selembar, operasi standarnya adalah Delete. Jika Anda tidak yakin dengan operasi defaultnya, lakukan tes untuk melihat apa yang terjadi.
Saat prosedur berakhir, Excel secara otomatis me-reset properti DisplayAlerts menjadi True. Jika Anda perlu mengaktifkan kembali lansiran sebelum prosedur berakhir, gunakan pernyataan ini:
Application. DisplayAlerts = True
Referensi objek yang disederhanakan
Seperti yang mungkin sudah Anda ketahui, referensi ke objek bisa menjadi sangat panjang. Misalnya, referensi yang memenuhi syarat untuk objek Range mungkin terlihat seperti ini:
Workbooks ("MyBook. Xlsx"). Lembar kerja ("Sheet1") _. Range ("InterestRate")
Jika makro Anda sering menggunakan kisaran ini, Anda mungkin ingin membuat variabel objek dengan menggunakan perintah Set. Misalnya, pernyataan berikut menetapkan objek Rentang ini ke variabel objek bernama Rate:
Set Rate = Workbooks ("MyBook. Xlsx") _. Lembar kerja ("Sheet1"). Range ("InterestRate")
Setelah menentukan variabel objek ini, Anda dapat menggunakan Variabel Rate daripada referensi yang panjang. Misalnya, Anda bisa mengubah nilai sel yang diberi nama InterestRate:
Rate. Nilai =. 085
Ini lebih mudah untuk mengetik daripada pernyataan berikut:
Workbooks ("MyBook. Xlsx"). Lembar kerja ("Sheet1"). _ Range ("InterestRate") =. 085
Selain menyederhanakan pengkodean Anda, dengan menggunakan variabel objek, kecepatankan makro Anda cukup jauh.
Menguraikan jenis variabel
Anda biasanya tidak perlu khawatir dengan jenis data yang Anda tetapkan ke variabel. Excel menangani semua detail untuk Anda di balik layar. Misalnya, jika Anda memiliki variabel bernama MyVar, Anda dapat menetapkan sejumlah jenis apa pun ke variabel tersebut. Anda bahkan dapat menetapkan string teks untuk itu nanti dalam prosedur.
Jika Anda ingin prosedur Anda dijalankan secepat mungkin, beri tahu Excel jenis data apa yang akan diberikan ke masing-masing variabel Anda. Ini dikenal sebagai mendeklarasikan tipe variabel.
Secara umum, Anda harus menggunakan tipe data yang membutuhkan jumlah byte terkecil namun masih dapat menangani semua data yang ditugaskan padanya. Ketika VBA bekerja dengan data, kecepatan eksekusi bergantung pada jumlah byte VBA yang ada. Dengan kata lain, semakin sedikit data byte yang digunakan, semakin cepat VBA dapat mengakses dan memanipulasi data.Pengecualian untuk ini adalah tipe data Integer. Jika kecepatan sangat penting, gunakan tipe data Long.
Jika Anda menggunakan variabel objek, Anda dapat mendeklarasikan variabel sebagai tipe objek tertentu. Inilah contohnya:
Dim Rate sebagai Range Set Rate = Workbooks ("MyBook. Xlsx") _. Lembar kerja ("Sheet1"). Range ("InterestRate")
Menggunakan Dengan Akhir Dengan struktur
Apakah Anda perlu mengatur sejumlah properti untuk sebuah objek? Kode Anda berjalan lebih cepat jika Anda menggunakan struktur With-End With. Manfaat tambahan adalah kode Anda mungkin lebih mudah dibaca.
Kode berikut tidak menggunakan With-End With:
Selection. HorizontalAlignment = xlCenter Selection. VerticalAlignment = xlCenter Selection. WrapText = Seleksi Benar Orientasi = 0 Seleksi. ShrinkToFit = Seleksi Salah. MergeCells = False
Berikut kode yang sama, ditulis ulang untuk digunakan With-End With:
With Selection. HorizontalAlignment = xlCenter. VerticalAlignment = xlCenter. WrapText = Benar Orientasi = 0. ShrinkToFit = Salah. MergeCells = Salah Palsu Dengan
Bila Anda menggunakan With-End With, pastikan setiap pernyataan dimulai dengan sebuah titik.