Excel için VBA'daki Hata Türleri - Liste ve Örnekler

Kullanıcılar genellikle VBA'da farklı türde hatalarla karşılaşır. Aşağıda, bunların üstesinden gelmek ve çözmek için birkaç strateji sunuyoruz. Test sırasında kodunuzu sorgulamak için kullanabileceğiniz tekniklerin yanı sıra çalışma zamanında hataları yakalama yöntemlerinden de geçeceğiz.

Excel için VBA'daki Hata Türleri

VBA kodundaki farklı hata türlerini test etmek ve izlemek zaman alıcı ve sinir bozucu olabilir. Programcıların duyulması alışılmadık bir şey değildir Programlama Programlama, bir bilgisayarın gerçekleştirmesi için talimat yazma işlemidir. İnsanlar için bir tarife benzer. Bir tarif, zamanlarının% 30'undan fazlasının test için harcandığını söyleyen bir eylem listesi içerir.

Zamanla, hatalardan kaçınmada daha iyi olacaksınız, ancak ilk seferinde mükemmel kod yazmanız pek olası değildir. VBA hatalarını nasıl önleyeceğinizi, bunlarla nasıl başa çıkacağınızı ve takip edeceğinizi öğrenerek, gelecekte kendinize tonlarca zaman kazandıracaksınız.

VBA Hata Türleri

İşleri kolaylaştırmak için kodlama hatası türlerini üç gruba ayırdık. Her grup için bazı örnekleri inceleyeceğiz ve sonra bunları nasıl araştırıp çözebileceğinizi tartışacağız.

1. Sözdizimi hataları - Belirli bir kod satırı doğru yazılmamış

2. Derleme hataları - Tek tek kod satırları mantıklı görünse de, kod satırlarını bir araya getirirken ortaya çıkan sorunlar

3. Çalışma zamanı hataları - Kod prensipte genellikle doğruysa, ancak kullanıcı veya kullanılan veriler tarafından gerçekleştirilen bir işlem beklenmeyen hatalara yol açıyorsa.

Sözdizimi Hataları nelerdir?

Sözdizimi hataları, VBA'nın kodunuzun en temel düzeylerde mantıklı olup olmadığını size söylemesinin bir yoludur. İngilizce bir cümle yazmanın kurallarıyla basit bir karşılaştırma yapabiliriz:

  • Bir konu gerekli.
  • Bir fiil gerekli.
  • Bir sermaye mektup başında gereklidir.
  • Sonunda noktalama işareti kullanılması gerekir.
  • Nesneler, sıfatlar ve diğer gramer özellikleri isteğe bağlıdır.

Jane , VBA kodunda 18 hata buldu .

Benzer şekilde, VBA, belirli durumlarda neyin gerekli olduğuna dair belirli kurallar koyar. Örneğin, kodunuzda temel bir koşullu EĞER ifadesi başlatırken, bir IF ifadesinin ilk satırı için aşağıdaki sözdizimi kurallarını çoğaltmanız gerekir;

  • If ile başlamalıdır
  • Sonraki , x> 10 gibi mantıksal bir test olmalıdır
  • Son olarak, bu kelime ile bitmelidir sonra

Eğer NumberErrors> 20 sonra

Yukarıdaki İngilizce veya VBA kurallarını ihlal ederseniz, dilbilginiz (İngilizce) veya sözdiziminiz (VBA) yanlış kabul edilir.

Sözdizimi Hatası Nasıl Belirlenir

VBA düzenleyicisi, sözdizimi hatalarını kırmızıyla vurgular ve bunları kolayca tanımlamanıza ve çözmenize olanak tanır. Ek olarak, kodunuzu çalıştırmaya veya yeni bir satır başlatmaya çalışırsanız, aşağıdaki söz dizimi hata mesajıyla karşılaşırsınız.

Temel sözdizimi hatası:

Temel sözdizimi hatası

Sözdizimi hatası mesajı kutusu:

Sözdizimi Hatası Mesajı Kutusu

Kontrollerin siz yazarken gerçekleştiğinden emin olmak için Seçenekler menüsünde "Otomatik Sözdizimi Kontrolü" nü etkinleştirin.

Otomatik Sözdizimi Kontrolü

Sözdizimi Hataları Nasıl Çözülür?

Sözdizimi hataları, kodunuzun belirli bir satırının yazılma biçimindeki hataları temsil eder. Kodunuzu çalıştırmadan önce düzeltilmeleri gerekir. Tecrübe kazandıkça, hatayı tespit etmek için ihtiyacınız olan tek şey kırmızı metin olacaktır. Ancak yine de takılıp kalıyorsanız, "if deyimi sözdizimi vba" ya da ihtiyaçlarınıza uygun olan varyasyonunu çevrimiçi olarak arayın ve yazmaya çalıştığınız belirli satırın birçok örneğini bulacaksınız.

Derleme Hataları nelerdir?

Derleme hataları, sözdizimi hatalarını içeren daha geniş bir VBA hatası grubunu ifade eder. Derleme hataları, bir bütün olarak düşünüldüğünde kodunuzla ilgili sorunları da tanımlar. Her bir satırın sözdizimi doğru olabilir, ancak bir araya getirildiğinde kodunuzun satırları bir anlam ifade etmiyor. Kodunuzu derlediğinizde veya çalıştırdığınızda derleme hataları vurgulanır.

Derleme Hatası Nasıl Belirlenir

VBA kodunuzu çalıştırdığınızda, aşağıdaki örneklere göre derleme hataları bir VBA iletişim kutusunda sunulacaktır.

Alternatif olarak, projeniz uzun veya karmaşıksa ve birden çok rutin içeriyorsa, çalıştırmadan önce kodunuzu derlemeniz faydalı olabilir. Kodunuzun yarısının başarıyla çalıştığı ve ardından bir hatanın ortaya çıktığı durumları önler. VBA kodunuzu Hata Ayıklama Menüsü → VBA Projesini Derle'ye tıklayarak derleyebilirsiniz.

örnek 1

Bir IF ifadesinin eksik bir "End if" bölümü için bir derleme hatası. Koddaki her satır doğrudur, ancak birlikte tam bir EĞER ifadesini temsil etmezler.

Derleme Hatası - Örnek 1

Örnek 2

Bu örnekte, VBA derleme işlemi kırmızıyla vurgulanan bir sözdizimi hatası algıladı. VBA, aşağıdaki kodun işlevde kapanış ayracının eksik olduğunu gösterir.

Derleme Hatası - Örnek 2

Örnek 3

Derleme hataları, Option Explicit kullanılırken yaygındır ve bir değişken açıkça tanımlanmadığında ortaya çıkar. Option Explicit etkinleştirildiğinde, kodunuzda kullanılmadan önce tüm değişkenleri bildirmek için bir Dim ifadesi gerekir.

Derleme Hatası - Örnek 3

Derleme Hataları Nasıl Çözülür?

VBA derleme hataları, etkilenen rutinlerin çalışmasını engeller. Siz bunları düzeltene kadar, kodunuz VBA tarafından doğru şekilde yorumlanamaz. Hata mesajı kutuları genellikle sözdizimi hatalarından daha yararlı tavsiyeler sağlar.

Hata mesajından sorunun ne olduğu hemen anlaşılmıyorsa, ifadenizin veya işlevinizin tam olarak nasıl yazılması gerektiği konusunda bir fikir edinmek için Microsoft'un Yardım Merkezi'ni kullanmayı deneyin. Microsoft web sitesindeki "Sonsuzsa engelle" hata mesajının bir örneğini burada bulabilirsiniz.

Sonu yoksa engelle

Çalışma Zamanı Hataları nelerdir?

Sözdizimi hatalarını düzelttikten ve derleme hatalarını düzelttikten sonra, istediğiniz eylemleri veya hesaplamaları ne kadar iyi yürüttüğünü görmek için kodunuzu doğru şekilde test etmeye veya çalıştırmaya hazırsınız. Test periyoduna veya kodun canlı olarak yürütülmesine "çalışma zamanı" diyoruz.

Çalışma zamanı hataları, sadece koda bakarak tespit edilemez; kodunuzun o anda belirli girdilerle veya verilerle etkileşime girmesinin bir sonucudur.

Çalışma zamanı hataları genellikle beklenmedik verilerin VBA koduna geçirilmesi, veri türlerinin eşleşmemesi, beklenmedik sıfırlara bölünmesi ve tanımlanmış hücre aralıklarının kullanılamamasından kaynaklanır. Çalışma zamanı hataları ayrıca izlenmesi ve düzeltilmesi en çeşitli ve karmaşık olanlardır.

Çalışma Zamanı Hataları Nasıl Belirlenir

VBA Hata Ayıklama VBA: Kodda Hata Ayıklama VBA kodu yazarken ve çalıştırırken, kullanıcının kod hatalarını nasıl ayıklayacağını öğrenmesi önemlidir. Excel kullanıcısının beklentisi, kod işlevinin sorun kodunu sarı renkte vurgulaması ve sorunun nedeninin ne olduğuna dair bize küçük bir ipucu vermesidir.

örnek 1

Aşağıdaki kod bir sayıyı diğerine bölerken, bunun mümkün olmadığı bazı durumlar vardır. Örneğin, A1 hücresi = 2 ve A2 hücresi = 0 ise, sıfıra bölmek mümkün değildir. Çalışma zamanı hata kutusu, sorun kodunu vurgulayan bir hata ayıklama düğmesi içerir.

Çalışma Zamanı Hatası - Örnek 1

Çalışma Zamanı Hataları - Örnek 1a

Örnek 2

Bu örnekte, çalışma sayfamdaki n şirketin adını toplamak için bir dizi oluşturdum. Daha sonra çalışma zamanında var olan veya olmayan altıncı maddeye başvurmaya çalıştım. VBA, bir çalışma zamanı hata mesajı sunar ve sorunu araştırmak için Hata Ayıkla düğmesine basmama izin verir.

Çalışma Zamanı Hatası - Örnek 2

Debug'a bastığımda, VBA soruna neden olan kod satırını vurgular. Şimdi neyin yanlış gittiğini anlamak için "Abonelik kapsam dışı" mesajını kullanmak bana düşüyor. Alt simge aralık dışı hatası genellikle kodunuzun prensipte iyi olduğu, ancak aradığınız belirli öğenin bulunamayacağı anlamına gelir. En yaygın olarak, Excel'deki hücrelere veya aralıklara ve ayrıca VBA kodunuzdaki dizilere başvururken gerçekleşir.

Çalışma Zamanı Hatası - Örnek 2a

Hata Ayıklama işlevinin etkinleştirildiğinden emin olmak için Seçenekler> Genel> Hata Yakalama menüsünde, varsayılan durum "İşlenmeyen Hatalarda Bozulma" olmalıdır. Seçeneği işaretli bırakın.

İşlenmeyen Hatalarda Kopma

Çalışma Zamanı Hataları Nasıl Çözülür?

Çalışma zamanı hataları çeşitli ve karmaşık olduğundan, çözümler de çeşitlidir. Çalışma zamanı hatalarını azaltmanın iki genel yöntemi şunlardır:

Hata Yakalama

Kodunuzun karşılaşabileceği olası senaryolar üzerine biraz düşünmek iyi bir fikirdir. Daha da iyisi, kodunuzu alıştırma verileri üzerinde veya gerçek kullanıcılarla test etmektir. Hata olup olmadığına bağlı olarak, kodun farklı sonuçlara ayrılmasıyla VBA'nızda bu tür senaryoları tanımanıza olanak tanır.

örnek 1

Burada, 'Hata Olduğunda Sonraki Devam Et' satırı, bir hata tespit edilse bile kodu devam etmeye zorlar. Daha sonra, eğer hata varsa, bir uyarı mesajı oluşturmak için If Err> 0 testini kullanırız. 'Hata Olduğunda 0'a Git', VBA'yı varsayılan durumuna sıfırlar.

Hata Yakalama - Örnek 1

Örnek 2

Burada kod, aylık gelire ve belirli bir gün sayısına bağlı olarak günlük geliri hesaplıyor. Gün sayısı belirtilmezse, bir aydaki ortalama gün sayısını temel varsayım olarak kullandığımız "NoDaysInMonthProvided:" adlı kodumuzda tanımlanmış bir noktaya atlarız. Basit olsa da, bir hatayı nasıl yakalayacağınızı ve kodunuzda farklı bir noktaya nasıl atlayacağınızı açıkça gösterir.

Hata Yakalama - Örnek 2

Kullanıcı Talimatlarını Temizle

Açık dokümantasyon ve çalışma sayfası etiketleri, kullanıcılarınızın modelinizle amaçladığınız şekilde etkileşimde bulunmasını sağlar. Numaralar yerine metin girerken veya daha sonra kodunuzu etkileyebilecek sıfırlar bırakırken bunları önlemeye yardımcı olacaktır.

Özet

VBA'da kodunuzu farklı şekillerde etkileyebilecek üç temel hata türü vardır. Hata ayıklayıcı ve otomatik sözdizimi denetimi gibi VBA'nın hata algılama seçeneklerini etkinleştirmek önemlidir. Hataların yerini ve niteliğini belirlemenize yardımcı olurlar.

Daha fazla kaynak

Finance, küresel Sertifikalı Bankacılık ve Kredi Analisti (CBCA) ™ CBCA ™ Sertifikasyonunun resmi sağlayıcısıdır Sertifikalı Bankacılık ve Kredi Analisti (CBCA) ™ akreditasyonu, finans, muhasebe, kredi analizi ve nakit akışı analizini kapsayan kredi analistleri için küresel bir standarttır , sözleşme modelleme, kredi geri ödemeleri ve daha fazlası. Herkesin birinci sınıf bir finansal analist olmasına yardımcı olmak için tasarlanmış sertifika programı. Kariyerinizi ilerletmeye devam etmek için aşağıdaki ek kaynaklar faydalı olacaktır:

  • #REF Excel Hataları #REF Excel Hataları #REF Excel hataları, elektronik tablolarda büyük sorunlara neden olur. Örnekler ve ekran görüntüleri içeren bu hızlı öğreticide #REF hatalarını Excel'de nasıl bulacağınızı ve düzelteceğinizi öğrenin. A #REF! hatası ("ref" referans anlamına gelir), bir formül artık mevcut olmayan bir hücreye başvurduğunda Excel'in görüntülediği mesajdır.
  • Excel VBA Örnekleri Excel VBA Örnekleri Excel VBA, kullanıcının Excel içindeki işlemleri otomatikleştiren makrolar yapmasına izin verir. Bu kılavuz, makroyu ayarlayarak bir makronun nasıl kaydedileceğini, değişkenlerin nasıl beyan edileceğini ve verilere nasıl başvurulacağını göstermek için Excel VBA örneklerini kullanacaktır.
  • Excel'de VBA Yazma İpuçları Excel'de VBA Yazma İpuçları Aşağıda Excel'de VBA yazmak için dokuz ipucu listelenmiştir. Excel için VBA, özel hesaplamalar ve otomasyon için sayısız olasılık sunar.
  • VBA Yöntemleri VBA Yöntemleri Bir VBA yöntemi, bir VBA nesnesine, değişkenine veya veri referansına eklenen ve Excel'e bu nesneyle ilgili olarak hangi eylemi gerçekleştireceğini söyleyen bir kod parçasıdır. Kopyalama, yapıştırma ve seçme, gerçekleştirilebilecek VBA yöntemlerinin yalnızca birkaç örneğidir.