Membuat excel vba berjalan lebih cepat
Panduan ini akan menunjukkan kepada Anda 4 cara berbeda untuk membuat makro Anda berjalan lebih cepat dan lebih efisien di Excel Show
Ada 4 hal utama yang dapat Anda lakukan untuk setiap makro agar berjalan lebih cepat BagianPembaruan LayarIni adalah cara nomor satu untuk mempercepat makro Kontrol Pembaruan Layar jika Excel akan memperbarui lembar kerja setiap kali ada sesuatu yang dilakukan dalam lembar kerja Jika Anda membiarkan pengaturan ini, yang merupakan nilai default, dan Anda melakukan sesuatu seperti menjalankan pengulangan pada setiap baris data dan melakukan sesuatu dengan data tersebut, Excel akan memperbarui layar setelah setiap perubahan; Matikan ini
Nyalakan ini _Baca lebih lanjut tentang ini di tutorial kami tentang mematikan ScreenUpdating di Excel PerhitunganJika Anda memiliki spreadsheet besar dengan rumus kompleks atau rumus yang ditautkan ke buku kerja terpisah, ini benar-benar dapat memperlambat makro Penghitungan di Excel mengacu pada Excel yang menghitung ulang semua rumus dan fungsi di lembar kerja setelah setiap kali ada perubahan di lembar kerja tersebut. Dengan lembar kerja kecil dan rumus sederhana, Anda tidak akan melihat apa pun; Matikan ini
Nyalakan ini
Baca lebih lanjut tentang ini di tutorial kami tentang menonaktifkan Perhitungan di Excel AcaraAcara adalah hal-hal di Excel yang dapat diatur untuk memicu makro untuk dijalankan. Anda dapat mengatur acara untuk menjalankan makro dengan pengguna memasukkan data ke dalam sel, memilih sel, berpindah antar lembar kerja, atau bahkan saat mereka menutup buku kerja Peristiwa dipicu saat pengguna melakukan tindakan tertentu dan juga saat makro melakukan tindakan tersebut. Dengan demikian, saat Anda menjalankan makro, Peristiwa dapat menyebabkan hasil yang tidak dapat diprediksi atau hanya makro yang lambat. Namun, Anda dapat mematikan Acara ini selama durasi makro Matikan ini _Nyalakan ini
Baca lebih lanjut tentang ini di tutorial kami tentang mematikan Acara di Excel LansiranLansiran adalah jendela Excel yang muncul untuk "memperingatkan" Anda akan sesuatu. Ini terjadi ketika, misalnya, Anda mencoba menutup buku kerja tanpa menyimpan dan Excel menghentikan Anda dan menampilkan jendela yang menanyakan apakah Anda ingin menyimpannya atau tidak Perilaku seperti ini merepotkan saat melakukan hal seperti menjalankan makro yang perlu membuka dan menutup buku kerja. Untuk menyiasatinya, Anda dapat menonaktifkan pesan dan peringatan ini agar tidak muncul Matikan ini _Nyalakan ini
Baca lebih lanjut tentang ini di tutorial kami tentang mematikan Peringatan di Excel BersamaBanyak orang hanya menggabungkan semua baris kode di atas dalam makro mereka sehingga mereka tidak perlu khawatir tentang masalah kecepatan dan kegunaan ini Ini contohnya _CatatanTautan di setiap bagian di atas memberikan lebih banyak informasi dan contoh serta dapat membantu Anda lebih memahami apa yang terjadi di makro Di bawah ini Anda akan menemukan beberapa tip untuk mempercepat kode VBA Anda. Kiat diatur secara longgar berdasarkan kepentingan Cara termudah untuk meningkatkan kecepatan kode VBA Anda adalah dengan menonaktifkan ScreenUpdating dan menonaktifkan Perhitungan Otomatis. Pengaturan ini harus dinonaktifkan di semua prosedur besar Nonaktifkan Pembaruan LayarSecara default, Excel akan menampilkan perubahan pada buku kerja secara real-time saat kode VBA berjalan. Hal ini menyebabkan penurunan besar dalam kecepatan pemrosesan karena Excel paling banyak menginterpretasikan dan menampilkan perubahan untuk setiap baris kode Untuk mematikan Pembaruan Layar _Di akhir makro Anda, Anda harus mengaktifkan kembali Pembaruan Layar
Saat kode Anda berjalan, Anda mungkin perlu "menyegarkan" layar. Tidak ada perintah "segarkan". Sebagai gantinya, Anda harus mengaktifkan Pembaruan Layar kembali dan menonaktifkannya lagi Tetapkan Perhitungan ke ManualSetiap kali nilai sel diubah, Excel harus mengikuti "pohon perhitungan" untuk menghitung ulang semua sel yang bergantung. Selain itu, setiap kali rumus diubah, Excel perlu memperbarui "pohon kalkulasi" selain menghitung ulang semua sel dependen. Bergantung pada ukuran buku kerja Anda, penghitungan ulang ini bisa menyebabkan makro Anda berjalan sangat lambat Untuk mengatur Perhitungan ke Manual
Untuk menghitung ulang seluruh buku kerja secara manual
Perhatikan bahwa Anda juga dapat menghitung hanya satu lembar, rentang, atau sel individual, jika perlu untuk meningkatkan kecepatan Untuk memulihkan Perhitungan Otomatis (di akhir prosedur Anda)
Penting. Ini adalah pengaturan Excel. Jika Anda tidak menyetel ulang penghitungan ke otomatis, buku kerja Anda tidak akan menghitung ulang hingga Anda memintanya Anda akan melihat peningkatan terbesar dari pengaturan di atas, namun ada beberapa pengaturan lain yang dapat membuat perbedaan Nonaktifkan AcaraAcara adalah "pemicu" yang menyebabkan prosedur acara khusus dijalankan. Contohnya termasuk. saat sel mana pun pada lembar kerja berubah, saat lembar kerja diaktifkan, saat buku kerja dibuka, sebelum buku kerja disimpan, dll. Menonaktifkan acara bisa menyebabkan sedikit peningkatan kecepatan saat makro dijalankan, namun peningkatan kecepatan bisa jauh lebih besar jika buku kerja Anda menggunakan acara. Dan dalam beberapa kasus menonaktifkan acara diperlukan untuk menghindari pembuatan loop tanpa akhir Untuk menonaktifkan acara
Untuk menghidupkan kembali acara
Nonaktifkan Hentian HalamanMenonaktifkan PageBreaks dapat membantu dalam situasi tertentu
Untuk menonaktifkan Hentian Halaman
Untuk mengaktifkan kembali PageBreaks
Praktik Terbaik untuk Meningkatkan Kecepatan VBAHindari Mengaktifkan dan MemilihSaat Anda merekam Makro, Anda akan melihat banyak metode Aktifkan dan Pilih
Mengaktifkan dan memilih objek biasanya tidak diperlukan, mereka menambah kekacauan pada kode Anda, dan sangat memakan waktu. Anda harus menghindari metode ini jika memungkinkan Contoh yang Ditingkatkan _0Hindari Menyalin dan MenempelMenyalin membutuhkan memori yang signifikan. Sayangnya, Anda tidak dapat memberi tahu VBA untuk mengosongkan memori internal. Sebaliknya, Excel akan menghapus memori internalnya pada (tampaknya) interval tertentu. Jadi, jika Anda melakukan banyak operasi salin dan tempel, Anda berisiko memonopoli terlalu banyak memori, yang dapat memperlambat kode Anda secara drastis atau bahkan membuat Excel crash. Alih-alih menyalin dan menempel, pertimbangkan untuk menyetel properti nilai sel _1Gunakan Untuk Setiap loop, bukan Untuk LoopsSaat melakukan perulangan melalui objek, perulangan Untuk Setiap lebih cepat daripada perulangan Untuk. Contoh Ini Untuk Loop _2Lebih lambat dari ini Untuk Setiap Loop _3Deklarasikan Variabel / Gunakan Opsi EksplisitVBA tidak mengharuskan Anda mendeklarasikan variabel Anda, kecuali jika Anda menambahkan Option Explicit ke bagian atas modul Anda _4Menambahkan Opsi Eksplisit adalah praktik terbaik pengkodean karena mengurangi kemungkinan kesalahan. Ini juga memaksa Anda untuk mendeklarasikan variabel Anda, yang sedikit meningkatkan kecepatan kode Anda (manfaat lebih terlihat semakin banyak variabel digunakan) Bagaimana Option Explicit mencegah kesalahan? Manfaat terbesar dari Option Explicit adalah ini akan membantu Anda menemukan kesalahan pengejaan nama variabel. Misalnya, dalam contoh berikut kami menetapkan variabel bernama 'var1', tetapi nanti kami mereferensikan variabel bernama 'varl'. Variabel 'varl' belum ditentukan sehingga kosong, menyebabkan hasil yang tidak terduga _5Gunakan Dengan – Akhiri Dengan PernyataanJika Anda mereferensikan objek yang sama beberapa kali (mis. Ranges, Worksheets, Workbooks), pertimbangkan untuk menggunakan With Statement. Lebih cepat diproses, dapat membuat kode Anda lebih mudah dibaca, dan menyederhanakan kode Anda Dengan contoh pernyataan _6Lebih cepat dari _7Kiat Praktik Terbaik Tingkat LanjutLindungi Antarmuka Pengguna SajaMerupakan praktik yang baik untuk melindungi lembar kerja Anda dari pengeditan sel yang tidak terlindungi untuk mencegah pengguna akhir (atau Anda. ) dari merusak buku kerja secara tidak sengaja. Namun, ini juga akan melindungi lembar kerja agar tidak mengizinkan VBA melakukan perubahan. Jadi, Anda harus membuka proteksi dan melindungi kembali lembar kerja, yang sangat memakan waktu jika dilakukan pada banyak lembar _8Sebagai gantinya, Anda dapat memproteksi sheet dengan mengatur UserInterfaceOnly. = Benar. Ini memungkinkan VBA untuk membuat perubahan pada sheet, sambil tetap melindunginya dari pengguna _9Penting. UserInterFaceOnly diatur ulang ke False setiap kali buku kerja dibuka. Jadi untuk menggunakan fitur luar biasa ini, Anda perlu menggunakan acara Workbook_Open atau Auto_Open untuk mengatur pengaturan setiap kali buku kerja dibuka Tempatkan kode ini di modul Thisworkbook _0atau kode ini dalam modul reguler apa pun _1Gunakan Array untuk Mengedit Rentang BesarIni bisa sangat memakan waktu untuk memanipulasi rentang sel yang besar (Kel. 100.000+). Alih-alih mengulang rentang sel, memanipulasi setiap sel, Anda dapat memuat sel ke dalam larik, memproses setiap item dalam larik, lalu mengeluarkan larik kembali ke sel aslinya. Memuat sel ke dalam array untuk manipulasi bisa lebih cepat _2Pengkodean VBA Menjadi MudahBerhenti mencari kode VBA online. Pelajari lebih lanjut tentang AutoMacro – Pembuat Kode VBA yang memungkinkan pemula untuk membuat kode prosedur dari awal dengan pengetahuan pengkodean minimal dan dengan banyak fitur hemat waktu untuk semua pengguna Mengapa makro VBA saya sangat lambat?Masalah umum yang dapat menyebabkan masalah kinerja di makro VBA adalah penggunaan. Pilih fungsi . Setiap kali sel dipilih di Excel, setiap add-in Excel (termasuk sel pemikir) diberi tahu tentang peristiwa perubahan pemilihan ini, yang sangat memperlambat makro.
Bagaimana cara mengoptimalkan Excel VBA?Optimalkan Kode VBA untuk peningkatan kinerja . Matikan mode "Perhitungan Otomatis" dan aktifkan mode "Perhitungan Manual". . Matikan "Pembaruan Layar". Nonaktifkan Aplikasi. . Matikan Lembar Aktif. . Nonaktifkan animasi di Excel dengan “Application. . Matikan status bar dengan “Application. . Matikan "Komunikasi Cetak" Bagaimana cara mempercepat loop di VBA?Silakan bertanya. . Hilangkan semua pernyataan yang mengatakan ActiveCell,. Pilih atau. Mengaktifkan. . Deklarasikan semua variabel sebagai sesuatu. . Gunakan transfer-array untuk membawa nilai ke VBA atau mengembalikannya ke lembar kerja. . Matikan ScreenUpdating (setel sama dengan False). . Minimalkan penggunaan subs acara Apakah VBA lebih cepat dari formula?Biasanya lebih cepat menggunakan perhitungan rumus Excel dan fungsi lembar kerja daripada menggunakan fungsi yang ditentukan pengguna VBA . |