Debugging VBA Macro - Tips Excel

Cara men-debug makro VBA Excel yang tidak berfungsi. Ada alat luar biasa di Excel VBA yang memungkinkan Anda melihat nilai saat ini yang disimpan dalam variabel saat Anda menelusuri kode satu baris dalam satu waktu. Jika Anda memiliki makro yang tidak berfungsi,

Menonton video

  • Anda memiliki Makro VBA Excel yang tidak berfungsi
  • VBA memiliki alat debugging yang luar biasa
  • Daripada menjalankan kode Anda, Anda dapat menelusuri kode menggunakan F8
  • Garis berwarna kuning adalah garis yang akan dijalankan
  • Arahkan kursor ke variabel mana pun untuk melihat nilai variabel itu.
  • Beralih ke Excel untuk melihat apa yang terjadi

Transkrip Video

Pelajari Excel dari Podcast, Episode 2096: Debugging Makro VBA

Hai, selamat datang kembali di netcast, saya Bill Jelen. Pertanyaan hari ini: Seseorang memiliki beberapa kode yang saya posting di video YouTube lama dan mereka memposting komentar yang mengatakan, “Ah, itu tidak berfungsi. Itu tidak menyimpan faktur duplikat tetapi tidak menimbulkan kesalahan. ” Saya tidak tahu apa yang salah dengan kode itu. Baiklah, Anda tahu, lihat, ada alat hebat yang tersedia saat Anda VBA Macro tidak berfungsi. Jadi kami memiliki tombol di sini yang seharusnya menjalankan beberapa kode. Saya akan Menetapkan Makro, ini disebut SaveInvoice. Saya akan mengklik Edit dan kami selesai di VBA. Dan biasanya saat kita menekan tombol itu hanya akan menjalankan kode ini. BAM! Sepertinya semuanya terjadi sangat cepat tetapi Anda tidak dapat melihat apa yang terjadi.

Jadi di bawah alat Debug, salah satu hal favorit saya di sini adalah Debug Step Into, yang Anda akan melihat tombol pintasnya adalah F8, dan itu memungkinkan kita menjalankan kode satu baris dalam satu waktu. Jadi saya menekan F8 di sana dan ini- garis kuning adalah garis yang akan dieksekusi. Jadi jika saya menekan F8, itu melompati dua deklarasi tersebut dan sekarang kita akan melakukan ActiveSheet.Copy. Jadi yang benar-benar indah di sini adalah lho, terutama jika Anda memiliki monitor besar bahwa jendela Podcast terlalu kecil tetapi yang dapat Anda lakukan adalah Anda dapat menonton Macro berjalan. Jadi sekarang ini akan melakukan ActiveSheet.Copy. Saat ini saya berada di buku kerja yang disebut Podcast 2096. Ini adalah lembar kerja yang disebut Faktur dan ketika saya menekan F8, Anda akan melihat bahwa saya sekarang berada di buku kerja baru yang disebut Book2 dan kami hanya memiliki Faktur, oke.

Dan sekarang kami akan menetapkan hal besar dan panjang ini ke FN Baru. Tekan F8. Baiklah sekarang, sepertinya tidak terjadi apa-apa di sini karena tidak ada yang terjadi di sini. Tapi inilah hal yang indah, saya sekarang telah menetapkan sesuatu ke variabel yang disebut FN Baru dan jika saya mengambil mouse dan mengarahkan kursor ke FN Baru, tip alat kecil akan muncul yang menunjukkan kepada saya apa yang disimpan di FN Baru. Jadi itu menyimpan nama File, ada folder yang akan dituju. Ini disebut Invoice1234 karena mengambil nilai dari F4 dan kemudian menambahkan PDF.

Sekarang, salah satu hal yang paling membuat frustrasi tentang Excel adalah jika memori Anda mulai menipis, tip alat ini tidak ingin muncul. Anda akan berada di sana dan tidak akan terjadi apa-apa. Terkadang Anda harus mengklik untuk membuatnya di sini dan terkadang tidak muncul sama sekali. Jika tidak muncul sama sekali, yang bisa kita lakukan adalah melakukan Ctrl + G. Ctrl + G adalah jendela langsung dan kemudian kita akan menggunakan? yang merupakan pintasan untuk Debug.Print, NewFN. Jadi dengan kata lain, beri tahu saya apa yang ada di FN Baru dan itu akan menunjukkan apa yang ada di FN Baru di sana.

Baiklah sekarang, kita akan menjalankan baris kode ini yang akan membuat PDF. Baiklah, jadi saya akan tekan F8. Baiklah, dan pada titik ini kita harus memiliki PDF baru di luar sana dengan 1234 dan jika saya melihat di folder, cukup yakin Inv1234 pada 11 Mei jam 6:25 baru saja dibuat. Luar biasa, bukan?

Baiklah, sekarang kita sampai pada titik di mana kita mengalami masalah. Baiklah, jadi kita tekan F8 di sini dan itu muncul sebagai Salinan Duplikat. Baiklah, itu berhasil. Lalu F8, dan kita bisa melihat apa yang ada di FN Baru. Baiklah, jadi ini memiliki DupInv1234.pdf dan Anda bahkan dapat kembali ke sini dan cukup klik setelah Print NewFN dan kemudian Anda akan melihat bahwa kami telah mengubah nama file, baiklah. Jadi, semuanya keren. Dan kemudian kami menekan F8 untuk menjalankan Membuat PDF. Hebat! Semuanya terlihat bagus, bukan?

Jadi, kembalilah ke file Podcast kami. Baiklah, tapi alih-alih memiliki sesuatu yang disebut DupInv1234, saya hanya tidak tahu bagaimana sesuatu yang disebut Book2. Baiklah, itu baru dibuat semenit yang lalu. Ini pasti satu-satunya tapi gee! Sepertinya itu nama yang salah. Baiklah, jadi kita kembali ke VBA dan saya tahu bahwa saya baru saja menetapkan nilai yang tepat untuk FN Baru seperti itu, oke. Dan mari kita lihat apa yang kami Saving It As. Kami Menyimpannya Sebagai NewFN1 yang kosong; dan karena kosong itu berarti mengambil nama file yang dalam hal ini adalah Book2 karena saya membuat salinannya. Dan mengubahnya - Oh, lihat! Jadi di sini, saya menetapkan nama ke NewFN dan kemudian menyimpan NewFN1 ini, dan sekarang karena saya sedang men-debug dan melayang - Melayang adalah hal terhebat yang pernah ada. Semoga saya bisa mengetahui apa yang terjadi.Jadi saya kembali dan mengganti NewFN1. Sekarang, inilah hal yang mengagumkan. Baiklah, jadi sudah melewati garis ini di Makro tapi saya bisa menyeret ini kembali dan berkata, baiklah, mari kita jalankan ini lagi F8. Dan sekarang mari buat PDF. Baiklah, dan itu muncul dengan nama yang benar dan semuanya keren.

Baiklah, sekarang setelah saya tahu bahwa saya sudah selesai, semuanya baik-baik saja. Semuanya akan berhasil dari sini. Saya cukup klik Jalankan dan itu akan berjalan ke akhir kode. Baiklah, terkadang Anda akan memiliki Makro panjang dengan, Anda tahu, ratusan baris kode yang berfungsi dan kemudian satu bagian tertentu yang tidak berfungsi, oke? Jadi beberapa alat lain baru saja disebutkan di sini. Jika Anda perlu melompati sejumlah besar kode dan menjalankan semuanya hingga titik itu, salah satu cara untuk melakukannya adalah dengan mengklik di sini dan membuat Breakpoint. Baiklah, jadi sekarang ketika saya menjalankan ini, itu akan menjalankan semuanya ke titik itu. Saya cukup mengklik jalankan dan itu akan berhenti, atau jika Anda bahkan tidak ingin menyetel Breakpoint, kami cukup klik di sini dan katakan Debug, Run To Cursor. Jalankan Ke Kursor.Sekarang saya tahu bahwa ini akan menyebabkan masalah di sini karena kode untuk mengubah nomor faktur ini, saya belum menghubungkannya. Jadi saya akan memasukkan nomor faktur baru dan saya berada di jalur itu sekarang. Debug, Jalankan Ke Kursor yaitu Ctrl + F8. Baiklah, jadi sekarang semuanya berjalan ke titik itu dan yang harus kita miliki adalah kita harus dapat melihat bahwa itu baru saja membuat Inv1235, oke. Dan sekarang ini tentang- kita berada di baris kode ini. Saya bisa menekan F8 untuk menjalankan satu baris atau menjalankan sisanya. Dan itu DupInv1235 kami, oke? Jadi, Alat Debug di VBA ini luar biasa. Mari Anda menjalankan kode satu baris pada satu waktu, mengatur layar Anda sehingga kami dapat melihat kode yang sedang berjalan dan hasil kode di sebelah kiri. Dan Anda tahu, mudah-mudahan, Anda bisa mengetahui apa yang salah dengan kode tersebut.

Baiklah, jadi rekap episode: Memiliki Makro VBA Excel yang tidak berfungsi. Ini memiliki alat debugging yang luar biasa. Daripada menjalankan kode Anda, Anda dapat menelusuri kode menggunakan F8. Garis berwarna kuning adalah garis yang akan segera dijalankan. Anda dapat mengarahkan kursor ke variabel untuk melihat nilai variabel tersebut, beralih ke Excel untuk melihat apa yang terjadi.

Baiklah, saya ingin mengucapkan terima kasih sudah mampir. Sampai jumpa di lain waktu untuk netcast lain dari.

Unduh berkas

Unduh file contoh di sini: Podcast2096.xlsm

Artikel yang menarik...