Rumah Media Sosial 10 Cara untuk Mempercepat Macros - dummies

10 Cara untuk Mempercepat Macros - dummies

Isi kandungan:

Video: Tips Membuat Fungsi Terbilang Koma 2025

Video: Tips Membuat Fungsi Terbilang Koma 2025
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

Bagaimana Menghubungkan Item Menu ke Kategori di Joomla - dummies

Bagaimana Menghubungkan Item Menu ke Kategori di Joomla - dummies

Untuk artikel yang dikategorikan dalam Joomla untuk dilihat oleh pengguna laman web anda, anda perlu memautkan item menu Joomla anda ke kategori Joomla yang mengandungi artikel yang ingin anda siarkan. Dengan menyambungkan kategori ke item menu, semua artikel dalam kategori boleh didapati melalui item menu yang berkaitan. Untuk membuat ...

Cara Memasang Joomla CMS pada Server Jauh - dummies

Cara Memasang Joomla CMS pada Server Jauh - dummies

Sebaik sahaja anda telah memuatkan fail Joomla yang tidak diturunkan di pelayan jauh dan sediakan MySQL untuk Joomla, anda sudah bersedia untuk memasang Sistem Pengurusan Kandungan Joomla (CMS). Navigasi ke tapak anda di pelayan tuan rumah. Anda melihat halaman pemasangan Joomla pertama. Pilih bahasa. Klik Seterusnya. Semua item dalam pane bahagian atas ...

Cara Membiarkan Pengguna Menguruskan Akaun Sendiri di Joomla - dummies

Cara Membiarkan Pengguna Menguruskan Akaun Sendiri di Joomla - dummies

Walaupun anda boleh mengurus pengguna dari hujung belakang, Joomla menyediakan kemudahan yang baik yang membolehkan pengguna menguruskan diri mereka juga. Anda boleh membuat halaman di mana pengguna boleh mendaftar, log masuk, menetapkan semula kata laluan mereka, diingatkan kata laluan mereka, dan sebagainya. Buat laman pengurusan pengguna Untuk membuat halaman yang membolehkan pengguna mengurus sendiri, anda ...

Pilihan Editor

Pengguna dan Definisi SharePoint berbeza - dummies

Pengguna dan Definisi SharePoint berbeza - dummies

SharePoint mempunyai banyak jenis pengguna yang berbeza, dan bergantung di mana peranan anda sesuai , anda mungkin mempunyai pengalaman yang sangat berbeza dari pengguna SharePoint yang lain. Sebagai contoh, anda mungkin ditugaskan untuk membuat dan mentadbir laman web SharePoint untuk pasukan anda. Dalam kes ini, anda mungkin melihat ke hadapan fungsi yang luas SharePoint ...

Dan Microblog dalam SharePoint - dummies

Dan Microblog dalam SharePoint - dummies

Microblogging dibuat terkenal oleh Twitter. SharePoint 2013 membawa mikroblogging ke dunia korporat. Menggunakan Twitter, anda menghantar mesej ringkas kepada dunia. Anda boleh mengikuti orang lain dan menarik pengikut anda sendiri. Anda menyebut orang lain menggunakan simbol @ yang diikuti dengan nama mereka dan boleh menanda topik menggunakan # ...

Mengeksport Table Akses ke Senarai Dalam Talian SharePoint - dummies

Mengeksport Table Akses ke Senarai Dalam Talian SharePoint - dummies

Jika anda mempunyai meja dalam Akses yang ada pangkalan data yang anda ingin sediakan untuk ahli pasukan anda yang tidak mempunyai aplikasi MS Access 2010, cara terbaik untuk melakukan ini adalah untuk mengeksport jadual tersebut ke dalam senarai SharePoint. Ikuti langkah-langkah berikut: Dari pangkalan data anda, klik kanan pada jadual di ...

Pilihan Editor

Penyediaan aSVAB: Akar - patung

Penyediaan aSVAB: Akar - patung

Menjadi akrab dengan akar untuk ASVAB. Akar adalah kebalikan dari kuasa atau eksponen. Terdapat pelbagai jenis akar tak terhingga. Anda mempunyai akar kuadrat, yang bermaksud "membuang" asas kepada kuasa kedua; akar kubus, yang bermaksud "membuang" asas yang dinaikkan kepada kuasa ketiga; akar yang keempat, untuk ...

ASVAB Penyediaan: Bekerja dengan Perpuluhan - patung

ASVAB Penyediaan: Bekerja dengan Perpuluhan - patung

Anda perlu tahu bagaimana untuk bekerja dengan perpuluhan untuk ASBAB . Perpuluhan adalah kaedah menulis nombor pecahan tanpa menggunakan pengangka dan penyebut. Anda boleh menulis pecahan 7/10 sebagai perpuluhan 0. 7; anda menyebutnya "tujuh persepuluh" atau "titik nol tujuh. "Tempoh atau titik perpuluhan menunjukkan bahawa nombor itu ...

ASVAB Subtest Details - dummies

ASVAB Subtest Details - dummies

Tergantung di mana dan untuk tujuan apa yang anda ambil ujian, anda mungkin menghadapi beberapa versi ASVAB. Versi terkomputer dari ASVAB (CAT-ASVAB) mengandungi sembilan subtest masa yang berasingan. Pada CAT-ASVAB, Maklumat Auto dan Maklumat Kedai dipisahkan kepada dua ujian berbeza, sedangkan mereka digabungkan pada versi kertas. Lihatlah ...