Menyahpepijat Makro VBA - Petua Excel

Cara debug makro Excel VBA yang tidak berfungsi. Terdapat alat luar biasa dalam Excel VBA yang membolehkan anda melihat nilai semasa yang tersimpan dalam pemboleh ubah semasa anda melangkah kod satu baris pada satu masa. Sekiranya anda mempunyai makro yang tidak berfungsi,

Tonton Video

  • Anda mempunyai Macro Excel VBA yang tidak berfungsi
  • VBA mempunyai alat penyahpepijatan yang luar biasa
  • Daripada menjalankan kod anda, anda boleh melalui kod tersebut menggunakan F8
  • Garis berwarna kuning adalah garis yang hendak dijalankan
  • Arahkan kursor ke mana-mana pemboleh ubah untuk melihat nilai pemboleh ubah tersebut.
  • Beralih pergi dan balik ke Excel untuk melihat apa yang berlaku

Transkrip Video

Belajar Excel dari Podcast, Episode 2096: Penyahpepijatan Makro VBA

Hei, selamat datang kembali ke netcast, saya Bill Jelen. Soalan hari ini: Seseorang mempunyai beberapa kod yang saya siarkan pada video YouTube lama dan mereka menyiarkan komen dengan mengatakan, "Ah, itu tidak berfungsi. Itu tidak menyimpan invois pendua tetapi tidak membuat kesalahan. " Saya tidak tahu apa yang salah dengan kodnya. Baiklah, anda tahu, lihat, ada alat hebat yang tersedia ketika anda Macro VBA tidak berfungsi. Oleh itu, kita mempunyai butang di sini yang seharusnya menjalankan beberapa kod. Saya akan Tetapkan Makro, ia dipanggil SaveInvoice. Saya akan klik Edit dan kita sudah berada di VBA. Dan biasanya apabila kita menekan butang itu hanya akan menjalankan kod ini. BAM! Seperti itu semua berlaku dengan cepat tetapi anda tidak dapat melihat apa yang berlaku.

Oleh itu, di bawah alat Debug, salah satu perkara kegemaran saya di sini ialah Debug Step Into, yang akan anda lihat kunci pintasannya adalah F8, dan ini membolehkan kita menjalankan kod satu baris pada satu masa. Oleh itu, saya menekan F8 di sana dan ini - garis berwarna kuning adalah garis yang akan dilaksanakan. Oleh itu, jika saya menekan F8, ia melepasi dua deklarasi tersebut dan sekarang kami akan membuat ActiveSheet.Copy. Oleh itu, apa yang benar-benar indah di sini adalah, anda tahu, terutamanya jika anda mempunyai monitor besar bahawa tetingkap Podcast terlalu kecil tetapi apa yang boleh anda lakukan ialah anda dapat menonton jangka Macro. Jadi sekarang ia akan melakukan ActiveSheet.Copy. Sekarang saya berada dalam buku kerja bernama Podcast 2096. Berikut adalah lembaran kerja yang dipanggil Invoice dan apabila saya menekan F8, anda akan melihat bahawa saya sekarang berada di buku kerja baru yang disebut Book2 dan kami hanya mempunyai Invoice, baiklah.

Dan sekarang kita akan memberikan perkara besar dan panjang ini kepada FN Baru. Tekan F8. Baiklah sekarang, nampaknya tidak berlaku apa-apa di sini kerana tidak ada yang berlaku di sini. Tetapi inilah yang indah, saya sekarang telah menetapkan sesuatu untuk pemboleh ubah yang disebut New FN dan jika saya mengambil tetikus saya dan menuding di atas New FN, sedikit petua alat akan muncul yang menunjukkan kepada saya apa yang tersimpan di FN Baru. Jadi menyimpan nama Fail, ada folder di mana ia akan pergi. Ia dipanggil Invoice1234 kerana mengambil nilai dari F4 dan kemudian menambahkan PDF.

Baiklah sekarang, salah satu perkara yang paling mengecewakan mengenai Excel ialah jika ingatan anda mulai semakin lemah, petua alat ini tidak mahu muncul. Anda akan berlegar di sana dan tidak ada yang akan berlaku. Kadang-kadang anda perlu mengklik untuk membuatnya di sini dan kadang-kadang ia tidak akan muncul sama sekali. Apabila ia tidak akan muncul sama sekali, apa yang boleh kita lakukan ialah Ctrl + G. Ctrl + G adalah tetingkap terdekat dan kemudian kita akan gunakan? yang merupakan jalan pintas untuk Debug.Print, NewFN. Dengan kata lain, beritahu saya apa yang ada di FN Baru dan ini akan menunjukkan kepada anda apa yang ada di FN Baru di sana.

Baiklah sekarang, kita akan menjalankan baris kod ini yang akan membuat PDF. Baiklah, jadi saya akan tekan F8. Baiklah, dan pada ketika ini kita harus mempunyai PDF baru di luar sana dengan 1234 dan jika saya melihat ke dalam folder, cukup pasti Inv1234 pada 11 Mei jam 6:25 pagi baru sahaja dibuat. Hebat, bukan?

Baiklah, sekarang kita sampai ke tahap di mana kita menghadapi masalah. Baiklah, jadi kami tekan F8 di sini dan ia muncul sebagai Salinan Pendua. Baiklah, itu berjaya. Dan kemudian F8, dan kita dapat melihat apa yang ada di FN Baru. Baiklah, jadi ia mempunyai DupInv1234.pdf dan anda bahkan boleh kembali ke sini dan hanya klik selepas Cetak NewFN dan kemudian anda akan melihat bahawa kami telah menukar nama fail, baiklah. Jadi, semuanya sejuk. Dan kemudian kami menekan F8 untuk menjalankan Membuat PDF. Hebat! Semuanya kelihatan hebat, bukan?

Oleh itu, kembali ke fail Podcast kami. Baiklah, tetapi bukannya mempunyai sesuatu yang disebut DupInv1234, saya tidak tahu bagaimana sesuatu yang disebut Book2. Baiklah, ia baru dibuat sebentar tadi. Ini mesti menjadi satu tapi ya ampun! Nampaknya nama yang salah. Baiklah, jadi kami kembali ke VBA dan saya tahu bahawa saya memberikan nilai yang betul kepada New FN seperti itu, baiklah. Dan mari kita lihat apa yang kita simpan. Kami Menyimpannya Sebagai NewFN1 yang kosong; dan kerana kosong itu bermakna ia mengambil nama fail yang dalam kes ini adalah Book2 sejak saya membuat salinannya. Dan mengubahnya - Oh lihat! Jadi di sini, saya memberikan nama itu kepada NewFN dan kemudian menyimpan NewFN1 ini, dan sekarang kerana saya menyahpepijat dan melayang - Melayang adalah perkara paling hebat yang pernah ada. Saya harap dapat mengetahui apa yang berlaku.Oleh itu, saya kembali dan menukar NewFN1. Sekarang, inilah perkara yang mengagumkan. Baiklah, jadi sudah melewati baris ini di Makro tetapi saya boleh menyeretnya ke belakang dan mengatakan, baiklah, mari kita jalankan ini lagi F8. Dan sekarang mari buat PDF. Baiklah, dan di sana ia muncul dengan nama yang betul dan semuanya hebat.

Alright, now that I know that I'm done, everything is great. Everything is going to work from here. I just click Run and it’ll run to the end of the code. Alright, sometimes you'll have a long Macro with, you know, hundreds of lines of code that are working and then one particular part that's not working, alright? So a couple of other tools were just mentioned here. If you need to jump over a whole bunch of code and run everything up to that point, well, one way to do that is to click here and create a Breakpoint. Alright, so now when I run this, it will run everything down to that point. I can just click run and it will stop, or if you don't even want to set a Breakpoint, we’ll just click right here and say Debug, Run To Cursor. Run To Cursor. Now I know that this will cause a problem here because the code to change this invoice number, I did not hook up yet. So I'll just put a new invoice number in and so I'm on that line right now. Debug, Run To Cursor which is Ctrl+F8. Alright, so now it ran everything down to that point and what we should have is we should be able to see that it just created Inv1235, alright. And now it's about- we’re on this line of code. I can just either press F8 to run one line or just run the rest of the way. And there's our DupInv1235, alright? So, the Debug Tools here in VBA are awesome. Let's you run a code one line at a time, arrange your screen so that we can see both the code that's running and the results of the code over on the left. And you know, hopefully, you can figure out what's going wrong with the code.

Baiklah, jadi rangkuman episod: Mempunyai Makro Excel VBA yang tidak berfungsi. Ia mempunyai alat penyahpepijatan yang menakjubkan. Daripada menjalankan kod anda, anda boleh melalui kod tersebut menggunakan F8. Garis berwarna kuning adalah garis yang hendak dijalankan. Anda boleh menuding ke atas pemboleh ubah untuk melihat nilai pemboleh ubah tersebut, beralih ke Excel untuk melihat apa yang berlaku.

Baiklah, saya ingin mengucapkan terima kasih kerana berhenti. Kami akan berjumpa anda di lain kali untuk siaran net lain dari.

Muat turun fail

Muat turun fail sampel di sini: Podcast2096.xlsm

Artikel menarik...