VBA Makrosunda Hata Ayıklama - Excel İpuçları

Çalışmayan bir Excel VBA makrosunda hata ayıklama. Excel VBA'da, her seferinde bir satır kodda ilerlerken değişkenlerde depolanan geçerli değeri görmenize olanak tanıyan harika araçlar vardır. Çalışmayan bir makronuz varsa,

Video izle

  • Çalışmayan bir Excel VBA Makronuz var
  • VBA'da harika hata ayıklama araçları var
  • Kodunuzu çalıştırmak yerine, F8 kullanarak kodda adım adım ilerleyebilirsiniz.
  • Sarı çizgi, koşmak üzere olduğu çizgidir
  • Söz konusu değişkenin değerini görmek için herhangi bir değişkenin üzerine gelin.
  • Neler olduğunu görmek için Excel'e geri ve ileri gidin

Video Metni

Podcast'ten Excel Öğrenin, Bölüm 2096: VBA Makrosunda Hata Ayıklama

İnternet yayınına tekrar hoş geldiniz, ben Bill Jelen. Bugünün sorusu: Birinin eski bir YouTube videosunda yayınladığım bir kodu vardı ve "Ah, bu işe yaramıyor. Yinelenen faturayı kaydetmez ancak bir hata oluşturmaz. " Kodun nesi var bilmiyorum. Pekala, biliyorsun, bak, VBA Makrosu çalışmadığında kullanılabilen harika araçlar var. Yani burada bazı kod çalıştırması gereken bir düğmemiz var. Makroyu Atayacağım, buna SaveInvoice denir. Düzenle'yi tıklayacağım ve VBA'da bitirdik. Ve normalde bu düğmeye bastığımızda sadece bu kodu çalıştıracak. BAM! Sanki her şey çok çabuk oldu ama ne olduğunu izleyemezsin.

Bu yüzden, Debug araçları altında, buradaki en sevdiğim şeylerden biri Debug Step Into'dur, kısayol tuşunun F8 olduğunu göreceksiniz ve bu, kodu her seferinde bir satır çalıştırmamızı sağlar. Orada F8'e bastım ve bu - sarı renkli çizgi, yürütmek üzere olduğu çizgi. Yani F8'e basarsam, bu iki bildirimin üzerinden atlar ve şimdi bir ActiveSheet.Copy yapmak üzereyiz. Yani burada gerçekten güzel olan şey, özellikle büyük bir monitörünüz varsa, Podcast penceresinin çok küçük olması, ancak yapabileceğiniz şey, Makro'nun çalışmasını izleyebilmenizdir. Yani şu anda ActiveSheet.Copy yapmak üzere. Şu anda Podcast 2096 adlı bir çalışma kitabındayım. İşte Invoice adında bir çalışma sayfası ve F8'e bastığımda, şimdi Book2 adında yepyeni bir çalışma kitabında olduğumu ve sadece Faturamızın olduğunu göreceksiniz.

Ve şimdi bu büyük, uzun şeyi Yeni FN'ye devretmek üzereyiz. F8'e basın. Pekala, burada hiçbir şey olmamış gibi görünmüyordu çünkü burada hiçbir şey olmadı. Ama işte güzel olan şey şu, şimdi Yeni FN adlı değişkene bir şey atadım ve faremi alıp Yeni FN'nin üzerine gelirsem, Yeni FN'de nelerin depolandığını gösteren küçük bir araç ipucu görünecek. Yani Dosya adını kaydediyor, gideceği klasör var. F4'ten değeri aldığı ve ardından PDF eklediği için adı Invoice1234'tür.

Pekala, Excel ile ilgili en sinir bozucu şeylerden biri, hafızanız azalmaya başlarsa bu araç ipucunun görünmesini istememesidir. Orada durursun ve hiçbir şey olmayacak. Bazen bunu yapmak için tıklamanız gerekir ve bazen hiç görünmez. Hiç görünmediğinde yapabileceğimiz şey Ctrl + G yapmaktır. Ctrl + G hemen pencere ve sonra kullanacağız? Debug.Print, NewFN için kısayol olan. Yani başka bir deyişle, bana Yeni FN'de ne olduğunu söyleyin ve size Yeni FN'de neler olduğunu gösterecektir.

Pekala, şimdi, bir PDF oluşturacak bu kod satırını çalıştırmak üzereyiz. Pekala, F8'e basacağım. Pekala, ve bu noktada orada 1234 ile yeni bir PDF almalıyız ve eğer klasöre bakarsam, 11 Mayıs saat 06: 25'te yeterince Inv1234 oluşturulduğundan emin olabilirsiniz. Harika, değil mi?

Pekala, şimdi sorunu yaşadığımız noktaya geliyoruz. Pekala, burada F8'e basıyoruz ve Duplicate Copy olarak görünüyor. Pekala, işe yaradı. Ve sonra F8 ve Yeni FN'de ne olduğunu görebiliriz. Pekala, DupInv1234.pdf'ye sahip ve buraya geri dönüp NewFN Yazdır'ı tıklattıktan sonra dosya adını değiştirdiğimizi göreceksiniz, tamam. Yani her şey yolunda. Ve sonra PDF Oluşturma'yı çalıştırmak için F8'e basıyoruz. Harika! Her şey harika görünüyor, değil mi?

Öyleyse Podcast dosyalarımıza geri dönün. Pekala, ama DupInv1234 adında bir şeye sahip olmak yerine, Book2 denen şeyin nasıl olduğunu bilmiyorum. Pekala, daha bir dakika önce oluşturuldu. Bu sadece gee olmalı! Yanlış isim gibi görünüyor. Pekala, VBA'ya geri dönüyoruz ve Yeni FN'e doğru değeri böyle atadığımı biliyorum, pekala. Ve ne olarak kaydettiğimize bakalım. Onu boş olan NewFN1 olarak kaydediyoruz; ve boş olduğu için bu, bir kopyasını yaptığım için bu durumda Kitap2 olan dosya adını alıyor demektir. Ve değiştirdi - Oh bak! Yani burada, adı NewFN'e atıyordum ve sonra bu NewFN1'i kaydediyordum ve şimdi de hata ayıklama ve gezinme yaptığım için - Gezinme şimdiye kadarki en harika şey. Umarım neler olup bittiğini anlayabilirim.Bu yüzden geri dönüyorum ve NewFN1'i değiştiriyorum. Şimdi, işte harika şey. Pekala, Makro'da bu çizgiyi çoktan geçtim ama bunu tekrar yukarı sürükleyip diyebilirim, tamam, hadi bunu tekrar çalıştıralım F8. Şimdi de PDF'yi oluşturalım. Pekala, işte doğru adla karşımıza çıkıyor ve her şey yolunda.

Pekala, artık bittiğimi bildiğime göre, her şey harika. Buradan her şey yoluna girecek. Çalıştır'a tıklıyorum ve kodun sonuna kadar çalışacak. Pekala, bazen yüzlerce satır kodun çalıştığı ve sonra çalışmayan belirli bir parçanın olduğu uzun bir Makro'nuz olur, tamam mı? Yani burada birkaç başka araçtan bahsedildi. Bir grup kodun üzerinden atlamanız ve her şeyi o noktaya kadar çalıştırmanız gerekiyorsa, bunu yapmanın bir yolu buraya tıklamak ve bir Kesme Noktası oluşturmaktır. Pekala, şimdi bunu çalıştırdığımda, her şeyi o noktaya kadar çalıştıracak. Sadece çalıştır'a tıklayabilirim ve duracak ya da bir Kesme Noktası ayarlamak istemiyorsan, sadece buraya tıklayıp Debug, Run To Cursor diyeceğiz. İmlece Çalıştır.Şimdi bunun burada bir soruna neden olacağını biliyorum çünkü bu fatura numarasını değiştirecek kod, henüz bağlanmadım. Bu yüzden yeni bir fatura numarası koyacağım ve bu yüzden şu anda o satırdayım. Hata Ayıklama, Ctrl + F8 olan İmleci Çalıştır. Pekala, şimdi her şeyi o noktaya kadar koştu ve sahip olmamız gereken şey, onun Inv1235'i yarattığını görebilmemiz, pekala. Ve şimdi, bu kod satırındayız. Ya bir satırı çalıştırmak için F8'e basabilir ya da yolun geri kalanını çalıştırabilirim. Ve DupInv1235'imiz var, tamam mı? Bu nedenle, VBA'daki Hata Ayıklama Araçları harika. Her seferinde bir satır kod çalıştıralım, ekranınızı hem çalışan kodu hem de kodun sonuçlarını solda görebileceğimiz şekilde düzenleyelim. Ve umarım, kodda neyin yanlış gittiğini anlayabilirsiniz.

Pekala, bölüm özeti: Çalışmayan bir Excel VBA Makrosuna sahip olun. Harika hata ayıklama araçlarına sahiptir. Kodunuzu çalıştırmak yerine, F8 kullanarak kodda adım adım ilerleyebilirsiniz. Sarı renkli çizgi, çalıştırılmak üzere olan çizgidir. Söz konusu değişkenin değerini görmek için fareyle değişkenin üzerine gelebilir, neler olduğunu görmek için Excel'e gidip gelebilirsiniz.

Peki, uğradığın için teşekkür etmek istiyorum. Bir dahaki sefere başka bir internet yayını için görüşürüz.

Dosyayı indir

Örnek dosyayı buradan indirin: Podcast2096.xlsm

Ilginç makaleler...