Rumah Media Sosial 10 Cara untuk Mempercepat Macros - dummies

10 Cara untuk Mempercepat Macros - dummies

Isi kandungan:

Video: Tips Membuat Fungsi Terbilang Koma 2024

Video: Tips Membuat Fungsi Terbilang Koma 2024
Anonim

Kerana makro Excel anda menjadi semakin kuat dan kompleks, anda mungkin mendapati bahawa mereka kehilangan prestasi. Apabila membincangkan makro, perkataan performance biasanya sama dengan kelajuan . Kelajuan adalah berapa cepat prosedur VBA anda melaksanakan tugas yang dimaksudkan. Berikut adalah sepuluh cara untuk membantu memastikan macro Excel anda berjalan pada tahap prestasi optimum mereka.

Perhitungan helai halting

Adakah anda tahu bahawa setiap sel yang memberi kesan kepada formula apa saja dalam spreadsheet anda ditukar atau dimanipulasi, Excel mengira semula keseluruhan lembaran kerja? Dalam lembaran kerja yang mempunyai banyak formula, perilaku ini secara drastik boleh melambatkan makro anda.

Anda boleh menggunakan Aplikasi ini. Pengiraan harta untuk memberitahu Excel untuk beralih ke mod pengiraan manual. Apabila buku kerja berada dalam mod pengiraan manual, buku kerja tidak akan dikira semula sehingga anda secara eksplisit mencetuskan pengiraan dengan menekan kekunci F9.

Letakkan Excel dalam mod pengiraan manual, jalankan kod anda, dan kemudian beralih ke mod pengiraan automatik.

Sub Macro1 () Permohonan. Pengiraan = xlCalculationManual 'Letakkan kod makro anda di sini Permohonan. Perhitungan = xlKalkulasian Sub Akhir Endapan

Menetapkan mod pengiraan semula ke xlKalkulasiAutomatik secara automatik akan mencetuskan pengiraan semula lembaran kerja, jadi tidak perlu menekan kekunci F9 selepas berjalan makro anda.

Melumpuhkan pengemaskinian skrin kunci

Anda mungkin dapati bahawa apabila makro anda berjalan, skrin anda akan menghasilkan sedikit kelipan. Kelipan ini adalah Excel yang cuba menggambar semula skrin untuk menunjukkan keadaan semasa lembaran kerja. Malangnya, setiap kali Excel mengubah skrin, ia mengambil sumber memori.

Anda boleh menggunakan Aplikasi ini. Property ScreenUpdating untuk melumpuhkan kemas kini skrin sehingga makro anda selesai. Melumpuhkan pengemaskinian skrin menjimatkan masa dan sumber, membolehkan makro anda berjalan sedikit lebih cepat. Setelah kod makro anda selesai berjalan, anda boleh menghidupkan skrin mengemas kini semula.

Sub Macro1 () Permohonan. Pengiraan = xlCalculationManual Application. ScreenUpdating = False 'Letakkan kod makro anda di sini Permohonan. Pengiraan = xlCalculationAutomatic Application. ScreenUpdating = Sub End True

Setelah anda menetapkan property ScreenUpdating kembali ke Benar, Excel secara otomatis akan mencetuskan redraw layar.

Mematikan kemas kini bar status

Bar status Excel, yang muncul di bahagian bawah tetingkap Excel, biasanya memaparkan kemajuan tindakan tertentu dalam Excel.Jika makro anda berfungsi dengan banyak data, bar status akan mengambil beberapa sumber.

Penting untuk diperhatikan bahawa mematikan pengemaskinian skrin berasingan daripada mematikan paparan status bar. Bar status akan terus dikemas kini walaupun anda melumpuhkan pengemaskinian skrin. Anda boleh menggunakan Aplikasi ini. Hartanah DisplayStatusBar untuk melumpuhkan sementara sebarang kemas kini status status, terus meningkatkan prestasi makro anda: Aplikasi

Sub Macro1 (). Pengiraan = xlCalculationManual Application. ScreenUpdating = Permohonan Palsu. DisplayStatusBar = Palsu 'Letakkan kod makro anda di sini Permohonan. Pengiraan = xlCalculationAutomatic Application. ScreenUpdating = Permohonan Benar. DisplayStatusBar = Sub Akhir Sub

Memberitahu Excel untuk mengabaikan peristiwa

Anda boleh melaksanakan makro sebagai prosedur acara, memberitahu Excel untuk menjalankan kod tertentu apabila lembaran kerja atau buku kerja berubah.

Kadangkala, makro standard membuat perubahan yang akan mencetuskan prosedur peristiwa. Contohnya, jika anda mempunyai makro standard yang memanipulasi beberapa sel pada Sheet1, setiap kali sel pada helaian itu ditukar, makro anda perlu berhenti sementara acara Worksheet_Change dijalankan.

Anda boleh menambah tahap meningkatkan prestasi dengan menggunakan ciri EnableEvents untuk memberitahu Excel untuk mengabaikan peristiwa semasa makro anda berjalan.

Tetapkan harta EnableEvents ke False sebelum menjalankan makro anda. Setelah kod makro anda selesai berjalan, anda boleh menetapkan hak milik EnableEvents kembali ke Benar.

Sub Macro1 () Permohonan. Pengiraan = xlCalculationManual Application. ScreenUpdating = Permohonan Palsu. DisplayStatusBar = Permohonan Palsu. EnableEvents = False 'Letakkan kod makro anda di sini Permohonan. Pengiraan = xlCalculationAutomatic Application. ScreenUpdating = Permohonan Benar. DisplayStatusBar = Permohonan Benar. EnableEvents = Sub End True

Menyembunyikan pemotongan halaman

Setiap kali makro anda mengubah bilangan baris, mengubah bilangan lajur, atau mengubah persediaan halaman lembaran kerja, Excel terpaksa mengambil masa mengira semula rehat halaman yang ditunjukkan pada helaian.

Anda boleh mengelakkan kelakuan ini dengan hanya menyembunyikan rehat halaman sebelum memulakan makro anda.

Tetapkan sifat helaian DisplayPageBreaks ke Palsu untuk menyembunyikan pecahan halaman. Jika anda mahu terus memaparkan rehat halaman selepas berjalan makro anda, tetapkan kembali butang helaian DisplayPageBreaks ke Benar.

Sub Macro1 () Permohonan. Pengiraan = xlCalculationManual Application. ScreenUpdating = Permohonan Palsu. DisplayStatusBar = Permohonan Palsu. EnableEvents = Activesheet Palsu. DisplayPageBreaks = False 'Letakkan kod makro anda di sini Permohonan. Pengiraan = xlCalculationAutomatic Application. ScreenUpdating = Permohonan Benar. DisplayStatusBar = Permohonan Benar. EnableEvents = Activesheet Benar. DisplayPageBreaks = Sub Pembaharuan Sub

Menghidupkan jadual pivot

Jika makro anda memanipulasi jadual pivot yang mengandungi sumber data yang besar, anda mungkin mengalami prestasi yang kurang baik apabila melakukan perkara seperti menambahkan medan pivot secara dinamik atau bergerak.

Anda boleh meningkatkan prestasi makro anda dengan menggantung pengiraan semula jadual pivot sehingga semua perubahan medan pivot telah dibuat. Cukup tetapkan PivotTable. ManualUpdate property to True untuk menangguhkan pengiraan semula, jalankan kod makro anda, dan kemudian tetapkan PivotTable. ManualUpdate property kembali ke Palsu untuk mencetuskan pengiraan semula.

Sub Macro1 () ActiveSheet. PivotTables ("PivotTable1"). ManualUpdate = Benar 'Letakkan kod makro anda di sini ActiveSheet. PivotTables ("PivotTable1"). ManualUpdate = Sub Ujian Salah

Menjahit salinan dan tampalan

Penting untuk diingat bahawa walaupun Perakam Makro menjimatkan masa dengan menulis kod VBA untuk anda, ia tidak selalu menulis kod yang paling berkesan. Contoh utama adalah bagaimana Perekam Makro menangkap sebarang tindakan salin dan tampal yang anda lakukan semasa merakam.

Anda boleh memberikan makro anda sedikit dorongan dengan memotong perantara dan melakukan salinan langsung dari satu sel ke sel destinasi. Kod alternatif ini menggunakan Argumen destinasi untuk memintas papan klip dan menyalin kandungan sel A1 terus ke sel B1.

Julat ("A1"). Salin Destinasi: = Julat ("B1")

Jika anda perlu menyalin nilai-nilai sahaja (tidak memformat atau formula), anda boleh meningkatkan prestasi dengan lebih banyak lagi dengan mengelakkan kaedah Copy semua bersama-sama. Cukup tetapkan nilai sel destinasi ke nilai yang sama yang terdapat dalam sel sumber. Kaedah ini kira-kira 25 kali lebih cepat daripada menggunakan kaedah Salin:

Julat ("B1"). Nilai = Julat ("A1"). Nilai

Jika anda perlu menyalin formula sahaja dari satu sel ke yang lain (bukan nilai atau pemformatan), anda boleh menetapkan formula sel destinasi kepada formula yang sama yang terdapat dalam sel sumber:

Range ("B1"). Formula = Range ("A1"). Formula

Menggunakan kenyataan Dengan

Apabila merakam makro, anda akan sering memanipulasi objek yang sama lebih daripada satu kali. Anda boleh menjimatkan masa dan meningkatkan prestasi dengan menggunakan pernyataan Bersama untuk melakukan beberapa tindakan pada objek yang diberikan dalam satu pukulan.

Kenyataan Dalam yang digunakan dalam contoh berikut memberitahu Excel untuk memohon semua perubahan format pada satu masa:

Dengan Julat ("A1"). Fon. Bold = Benar. Italic = Benar. Underline = xlUnderlineStyleSingle End With

Masuk ke kebiasaan tindakan chunking ke Dengan pernyataan tidak hanya akan membuat makro anda berjalan dengan lebih cepat tetapi juga membuat lebih mudah untuk membaca kod makro anda.

Mengelakkan kaedah Pilih

Perekam Makro suka menggunakan kaedah Pilih untuk memilih objek secara jelas sebelum mengambil tindakan ke atasnya. Pada umumnya tidak perlu memilih objek sebelum bekerja dengan mereka. Sebenarnya, anda boleh meningkatkan prestasi makro secara dramatik dengan tidak menggunakan kaedah Pilih.

Selepas merakam makro anda, menjadikannya tabiat untuk mengubah kod yang dijana untuk menghapuskan kaedah Pilih. Dalam kes ini, kod yang dioptimumkan akan kelihatan seperti berikut:

Helaian ("Sheet1"). Julat ("A1"). FormulaR1C1 = "1000" Helaian ("Sheet2"). Julat ("A1"). FormulaR1C1 = "1000" Helaian ("Sheet3"). Julat ("A1"). FormulaR1C1 = "1000"

Perhatikan bahawa tiada apa yang sedang dipilih.Kod ini hanya menggunakan hierarki objek untuk memohon tindakan yang diperlukan.

Mengehadkan perjalanan ke lembaran kerja

Cara lain untuk mempercepat makro anda adalah untuk mengehadkan jumlah kali anda mencantumkan data lembaran kerja dalam kod anda. Ia sentiasa kurang cekap untuk mengambil data dari lembaran kerja daripada dari ingatan. Maksudnya, makro anda akan berjalan lebih cepat jika mereka tidak perlu berulang kali berinteraksi dengan lembaran kerja.

Sebagai contoh, kod mudah berikut memaksa VBA untuk terus kembali ke Helaian ("Sheet1"). Julat ("A1") untuk mendapatkan nombor yang diperlukan untuk perbandingan yang dilakukan dalam pernyataan Jika:

Untuk ReportMonth = 1 hingga 12 Jika Julat ("A1"). Value = ReportMonth Then MsgBox 1000000 / ReportMonth End If Next ReportMonth

Cara yang jauh lebih efisien adalah untuk menyimpan nilai dalam Sheet ("Sheet1"). Julat ("A1") kepada pembolehubah yang dipanggil MyMonth. Dengan cara ini, kod tersebut merujuk pembolehubah MyMonth dan bukannya lembaran kerja:

Dim MyMonth sebagai Integer MyMonth = Range ("A1"). Nilai Untuk LaporanMonth = 1 Ke 12 Jika MyMonth = ReportMonth Kemudian MsgBox 1000000 / ReportMonth Akhir Jika Laporan SeterusnyaMemberi

Pertimbangkan untuk menggunakan pembolehubah untuk bekerja dengan data dalam ingatan berbanding dengan lembaran kerja rujukan secara langsung.

10 Cara untuk Mempercepat Macros - dummies

Pilihan Editor

Cara Mengeksport Persembahan PowerPoint 2016 anda ke PDF - patung

Cara Mengeksport Persembahan PowerPoint 2016 anda ke PDF - patung

PDF, yang bermaksud Format Dokumen Portable , adalah format yang popular untuk menukar fail. Anda boleh menukar persembahan PowerPoint 2016 ke format PDF dengan mengikuti langkah-langkah berikut: Pilih Fail → Eksport → Buat Dokumen PDF / XPS. Klik butang Buat PDF / XPS. Ini membawa kotak dialog yang ditunjukkan di sini. Membuat dokumen PDF. Navigasi ke lokasi di mana ...

Cara Cari Word dengan Thesaurus PowerPoint 2007 - patung

Cara Cari Word dengan Thesaurus PowerPoint 2007 - patung

Jika kata yang anda perlukan persembahan PowerPoint anda berada di hujung lidah anda tetapi anda tidak boleh mengingatinya, memberikan Thesaurus PowerPoint satu pukulan. Untuk mencari sinonim untuk perkataan pada slaid PowerPoint, mulakan dengan mengklik kanan perkataan dan memilih Sinonim pada menu pintasan. Untuk mencari sinonim yang baik, ...

Bagaimana untuk menarik objek sederhana dalam PowerPoint 2013 - dummies

Bagaimana untuk menarik objek sederhana dalam PowerPoint 2013 - dummies

Untuk menarik objek pada slaid PowerPoint 2013, pertama memanggil tab Insert pada Reben. Kemudian klik butang Bentuk (terletak dalam kumpulan Ilustrasi) untuk mendedahkan galeri bentuk yang boleh anda pilih. Akhir sekali, pilih bentuk yang anda mahu menarik dari galeri Bentuk. Simpan petunjuk ini untuk memastikan ...

Pilihan Editor

Cara Memindahkan Wang Antara Akaun Bank di QuickBooks 2011 - dummies

Cara Memindahkan Wang Antara Akaun Bank di QuickBooks 2011 - dummies

Menu Perbankan dalam QuickBooks 2011 membekalkan arahan yang berguna untuk memindahkan wang antara akaun bank. Hanya pilih Perbankan → Dana Pemindahan, dan QuickBooks memaparkan Dana Pemindahan Antara tetingkap Akaun. Ikuti langkah berikut untuk menggunakan Dana Pemindahan Antara tetingkap Akaun: Gunakan medan Tarikh untuk mengenal pasti tarikh pemindahan. Anda boleh memasukkan tarikh dalam ...

Bagaimana Membekalkan Nombor-nombor yang Hilang untuk Muktamadkan Carta Akaun dalam QuickBooks 2016

Bagaimana Membekalkan Nombor-nombor yang Hilang untuk Muktamadkan Carta Akaun dalam QuickBooks 2016

Tugas terakhir anda untuk memuktamadkan Carta Akaun adalah memasukkan jumlah baki percubaan ke dalam QuickBooks 2016. Untuk melaksanakan tugas ini, anda perlu mempunyai baki percubaan yang disediakan pada tarikh penukaran. Ikuti langkah berikut: Pilih Entri Syarikat → Buat Entri Jurnal Umum atau Akauntan → Buat Entri Jurnal Umum. Memaparkan QuickBooks ...

Cara untuk Mengirim Arahan Perbankan Elektronik dengan QuickBooks 2015 - patung

Cara untuk Mengirim Arahan Perbankan Elektronik dengan QuickBooks 2015 - patung

Anda boleh melakukan semua perbankan elektronik anda dengan QuickBooks. Selepas anda menerangkan pembayaran dalam talian dan pemindahan akaun yang anda mahu membuat QuickBooks, anda menghantar maklumat tersebut ke bank. Untuk berbuat demikian, ikuti langkah berikut:

Pilihan Editor

Menambahkan Carta Excel ke Dokumen Word 2007 - dummies

Menambahkan Carta Excel ke Dokumen Word 2007 - dummies

Apabila anda memasukkan carta dalam Word, Excel dimulakan secara automatik, dan data yang anda carta diletakkan dalam buku kerja Excel. Bagaimanapun, buku kerja Excel itu bukan? t disimpan sebagai dokumen berasingan. Sebaliknya, carta dan lembaran kerja buku kerja disimpan di dalam dokumen Word. Prosedur berikut menunjukkan bagaimana untuk memasukkan carta ...

Mengubah Format Seksyen dalam Dokumen Word 2007 - dummies

Mengubah Format Seksyen dalam Dokumen Word 2007 - dummies

Satu bahagian dalam Word 2007 adalah sebahagian dokumen yang mengandungi pemformatan halaman sendiri. Dengan bahagian, anda boleh mengarahkan arahan pemformatan halaman untuk hanya mempengaruhi seksyen dan bukannya merangkumi keseluruhan dokumen. Dengan setiap bahagian berasingan dari yang lain, dokumen boleh mempunyai pelbagai format. Dalam angka pertama ini, dokumen tersebut mempunyai ...