EXCEL VBA BREAK [HATA AYIKLAMA VE KOD ÇIKIŞI]

Excel VBA Kesme Noktası Nedir?

VBA'da bir kesinti, özellikle hata ayıklama sırasında VBA koduna duraklamasını söylediğiniz noktadır. VBA'da iki tür kesinti noktası vardır. Biri hata ayıklama için, diğeri döngülerden çıkmak içindir. VBA'da kod testinin bir parçası olarak, hataları kontrol etmek ve belirli satırlarda düzeltmek için kodu satır satır test etmeliyiz. Bir kesinti noktası uygulayarak kod yürütmeyi belirli bir satırda durdurabiliriz.

Belirtilen bir koşul karşılandığında, belirtilen döngü hala çalışıyor olsa bile, döngülerden çıkmak için başka bir kesme noktası kullanılır. Genellikle, bu tür döngü kesme noktası FOR NEXT ve DO WHILE döngülerinde kullanılır.

Örneğin aşağıdaki görsele bakın.

VBA Mola Girişi

Kırmızı vurgulanan çizgi, makro prosedüründe uygulanan kesme noktasıdır. Kodu çalıştırmayı denediğimizde, makro kesme noktasını (kırmızı nokta) bulana kadar çalışacak ve orada duracak ve hatta sağ vurgulanan satır bile çalıştırılmayacaktır.

Önemli Noktalar
  • VBA break'i kullanarak, herhangi bir sorun devam ederse breakpoint'ler uygulayabilir ve kodu hata ayıklayabiliriz.
  • Kırmızı çizgi, koda uygulanan kesme noktasını gösterir.
  • VBA breakpoint kodun belirli bir satırda durdurulmasını sağlar.
  • Exit…For, bir döngünün birçok kez çalışması gerektiği halde, belirli mantıksal koşul sağlandığında döngüden çıkmak için kullanılır.

VBA'da neden kesme noktasına ihtiyacımız var?

Herhangi bir programlama dilinde, başlangıçta hatalar olması kaçınılmazdır. Bunları çözmeye çalıştığımızda, satır satır test etmeliyiz. Çok sayıda kod satırı çalıştırmak istiyorsanız, bunları hızlı bir şekilde düzeltmek için kesme noktaları uygulamanız gerekir.

Örneğin, 50 satır kodumuz olduğunu ve kodun ilk 30 satırında hata olmadığından emin olduğumuzu varsayalım. Kodu yalnızca 31. satırdan itibaren kontrol etmeliyiz . Bu durumda, 31. satıra ulaşmak için kodun ilk 30 satırını satır satır çalıştırmalıyız . Ancak, kesme noktasını kullanarak, ilk 30 satır kodu tek tıklamayla hızlıca çalıştırabilir ve yürütmeyi 31. satırda durdurabiliriz . Şimdi, hatayı 31. satırdan bulmak için adım adım yöntemi kullanabiliriz (F8, kodları satır satır yürütmek için kısayol tuşudur) .

Bir döngü söz konusu olduğunda, döngüyü 100 kere çalıştırmamız gerekebilir ancak döngü 50. seferde belirli koşullar sağlandığı takdirde , 100. sefere ulaşmadan döngüyü bozabiliriz .


VBA'da Kesme Noktaları Nasıl Uygulanır?

Kodu hata ayıklamak için kesme noktalarını iki şekilde uygulayabiliriz: manuel yol ve kısayol tuşu.

Döngü kesme noktasından önce hata ayıklama kesme noktasına bakalım.

Örnek 1 – Hata Ayıklama için Kesme Noktası

1 – Manuel Yöntem

Kesme noktasını manuel ve kısayol yöntemleriyle hata ayıklama için uygulayabiliriz. Kesme noktasını manuel yöntemi kullanarak uygulamanın bir örneğini gösterelim.

Örneğin aşağıdaki koda bakın.

Sub Break_Point_Example1()
Dim x As Long
Dim y As String
ActiveSheet.Range(“A1”).Value = “Excel VBA Break Point”
ActiveSheet.Name = “VBA Break Point”
x = “New York”
y = “Londra”
Range(“B1”).Value = x
Range(“C1”).Value = y
End Sub

F5 kısayol tuşuna basarak kodu tek seferde çalıştıralım ve ne olacağını görelim.

VBA Break - Örnek 1 - Manuel - çalıştır

Kodu çalıştırdığımızda, “Run-time error '13':” Type Mismatch hatasıyla karşılaştık. “Debug”a tıklayın ve bizi hatayla karşılaştığı satıra götürecektir.

VBA Break - Örnek 1 - Manuel - Hata Ayıklama

Sarı renkle vurgulanan çizgi hatanın gösterildiği yerdir.

Bu nedenle, kodu hata ayıklamaya çalıştığımızda, hata aldığımız satıra kadar kodu yürütmeliyiz. Bunu yapmak için bir kesme noktası uygulayabiliriz.

Kodun hata satırı için hata satırı kodunun sol kenar boşluğuna tıklayın.

VBA Break - Örnek 1 - Manuel - sol kenar boşluğu

Kodun sol kenarına tıkladığımız anda bir kesme noktası uygulanıyor ve kodun tüm satırı kırmızıyla vurgulanıyor.

VBA Break - Örnek 1 - Manuel - breakpoint.jpg

Şimdi, kodu çalıştırırsak, bir kesme noktası görene kadar çalışacak ve kesme noktasının satırında duracaktır. Kesme noktası satırında kırmızı ve sarı karışımını görebiliriz.

VBA Break - Örnek 1 - Manuel - karışım

Böylece kodun belirli bir satırına kesme noktası uygulayarak kodu hata ayıklayabiliriz.

Çözüm: Şimdi, hatanın neden alındığına bakalım. Hata mesajını x = “New York.” satırında alıyoruz.

VBA Break - Örnek 1 - Kılavuz - Çözüm

Burada x değişkenine “New York” değerini atıyoruz ve aldığımız hata tür uyuşmazlığı hatası oluyor.

VBA Break - Örnek 1 - Manuel - çalıştır

Kodun ilk satırına bakalım, burada bir değişken tanımladık.

Örnek 1 - Manuel - Değişken

Bu satırda, "x" adlı bir değişken tanımladık ve bu değişkene yalnızca sayısal değerleri tutabilen "Long" adlı bir VBA veri türü atadık.

Ancak şimdi hata kodu satırına bakalım.

Örnek 1 - Kılavuz - Çözüm

Bu satırda, yalnızca sayısal bir değer tutabilen "x" değişkenine "New York" değerini atadık. Bu nedenle, " Tür uyumsuzluğu " hatasını alıyoruz.

Bu hatayı çözmek için veri türünü “Long”dan “String”e değiştirmeliyiz.

Örnek 1 - Manuel - veri türünü değiştir

Artık kod herhangi bir hata olmadan çalışacaktır.

2 – Kısayol Yöntemi

Kesme noktasını kısayol yöntemini kullanarak da uygulayabiliriz. Kesme noktasını uygulamak için Excel kısayol tuşu F9'dur.

İmlecinizi hata kodunun bulunduğu satıra getirin.

VBA Break - Örnek 1 - Kısayol - Yanıp Sönme

Hata kodunun önüne imleci getirdikten sonra F9 kısayol tuşuna basın. Bu, satıra kesme noktasını uygulayacaktır.

VBA Break - Örnek 1 - Kısayol - F9

Bu kırmızı çizgi VBA kesme modunun açık olduğunu gösterir.

Örnek 2 – Döngülerde Kesme Noktası

Kodlamanın olmazsa olmaz parçalarından biri de VBA döngüsü içerisinde kod çalıştırıldığında belirtilen koşulun sağlanması için döngülerden çıkmaktır .

Örneğin, aşağıdaki FOR NEXT LOOP koduna bakın.

Sub Break_Point_Example2()
Dim k As Long
For k = 2 To 11
If Cells(k, 1).Value = “” Then
Cells(k, 1).Value = k – 1
Else
MsgBox “Boş olmayan bir hücre bulundu ve döngüden çıkılıyor (
Found a non blank cell and exiting the loop)

Exit For
End If
Next k
End Sub

A2'den A11'e kadar olan hücrelere 1'den 10'a kadar olan seri numaralarını ekleyecektir. Bu kodu çalıştırmadan önce, A2'den A11'e kadar olan çalışma sayfası alanına bakalım.

Örnek 2 - çalışma sayfası alanı

A7 hücresinde bazı değerlerimiz var, ancak mevcut FOR LOOP kodu A2 ila A11 aralığındaki değerlerle ilgilenmiyor. Kodu çalıştırdığımızda 1'den 10'a kadar seri numaraları ekleyecek ve bu senaryoda döngü on kez çalışacak.

VBA Break - Örnek 2 - seri numaralarını ekle

Kod, A7 hücresinde bulunan değerin üzerine yazdı. Döngü çalışırken çıkmamız veya VBA'nın kesilmesi gerektiğini varsayalım, ardından mantıksal koşulu uygulamamız gerekir ve EXIT FOR uygulanacaktır. Aşağıdaki koda bakın.

Örnek 2 - Kod

Mevcut döngü hücresinin boş olup olmadığını kontrol etmek için döngü içerisinde IF koşulunu uyguladık.

Mevcut döngü hücresi boşsa, bir seri numarası ekleyecek ve boş değilse, "Boş olmayan bir hücre bulundu ve döngüden çıkılıyor" mesajını görüntüleyecektir. Döngüyü "Çıkış İçin" anahtar sözcüğüyle kıracaktır.

Kodu çalıştırmadan önce çalışma sayfasına bakalım.

Örnek 2 - çalışma sayfası alanı

Kodu çalıştırın ve sonucu görün.

Örnek 2 - Sonuç

Görüldüğü gibi, döngü beş kez çalıştı ve 6. denemede A7 hücresindeki değeri buldu. Bu nedenle, VBA kesme kodu mesajını gösterdi ve “Exit For” aracılığıyla VBA kesme noktasını tetikledi.

“Tamam”a tıkladığınızda “FOR döngüsü” kırılacaktır.

Dikkat Edilmesi Gereken Önemli Noktalar

  • VBA kesme noktasını uygulamak için kısayol tuşu F9'dur.
  • VBA kesme bağlantıları uygulandığında, yürütme yalnızca o satırda durur ve kullanıcı manuel olarak yürütene kadar ileri gitmez.
  • Çıkış döngüsü VBA kesme noktasıyla uygulandığında, döngü kalan sayıda çalışmayacaktır.

VBA'da kesme noktası nasıl durdurulur?

Örneğin aşağıdaki koda bakın.

VBA Mola Girişi

Kodun 3. satırına bir VBA kesme noktası uygulandı. Kesme noktasını durdurmak istersek, kırmızı nokta dairemizin olduğu sol kenara tıklayabiliriz.

2. VBA mola modundan nasıl çıkabilirim?

VBA kesme modundan çıkmak için, imlecinizi kesme noktası kod satırına getirin ve F9 kısayol tuşuna basın. Bu, kesme noktasını o satırdan kaldıracaktır.

3. Excel VBA Break Neden Çalışmıyor?

Bir döngüyü kırmak için mantıksal bir koşul uyguladığımızda, döngüyü kırmak için koşul karşılanmalıdır. Aksi takdirde, VBA Break döngünün çalışmasını durdurmaz.

4. VBA'da tüm hatalarda nasıl kesinti yaparsınız?

Hata işleme durumunda koddaki hatayı kırmak için “On Error” ifadesini kullanmalıyız.


Yorum Gönder

DT KARİYER KPSS Dünyasına Hoş Geldiniz
Sevgili dostum nasıl yardımcı olabilirim?
Bu alana yazınız...