Excel, bir ifadenin sayı olarak değerlendirilip değerlendirilemeyeceğini kontrol eden VBA IsNumeric adlı yerleşik bir işleve sahiptir. Sayısal olmayan değerleri matematiksel olarak işlerken meydana gelebilecek hatalara karşı korunmak için Excel programlamada sıklıkla kullanılır. İfade sayısal bir değer olarak tanındığında, işlev True döndürür; aksi takdirde False döndürür. Excel VBA programlarında, bu işlev hataları yönetmek ve verileri doğrulamak için önemlidir.
Bir örneğe bakalım. Burada, "CheckNumericStatus" alt rutini, bir Excel çalışma sayfasında belirli bir aralıktaki (A1:A10) değerlerin sayısal durumunu değerlendirmek için tasarlanmıştır. Döngüdeki her hücrede gezinmek için "TargetCell" adlı bir Aralık değişkeni tanımlanmıştır. Değerlendirmeden sonra, True veya False, orijinalin iki sütun sağındaki bir hücreye yazılır (targetCell.Offset(0, 1).Value). Bu yöntemle, bir sütundaki veriler hızlı ve kolay bir şekilde incelenebilir ve komşu hücreler, karşılık gelen değerlerinin sayısal olup olmadığını belirtmek için işaretlenebilir. Değerlendirilen aralıkta ne tür verilerin bulunduğunu görmenin hızlı ve kolay bir yolunu sağlar.


- VBA IsNumeric, bir ifadenin sayı olup olmadığını belirlemek için kullanılan çok yönlü bir işlevdir. Çeşitli sayısal biçimleri doğrulama yeteneğine sahiptir ve bu da onu VBA'da sağlam veri işleme için olmazsa olmaz kılar.
- Sayısal değerleri sayısal olmayan değerlerden ayırarak matematiksel işlemlerde çalışma zamanı hatalarının önlenmesinde önemli rol oynar.
- Tür uyuşmazlığı hatasını önlemek için VBA IsNumeric'e geçirilen ifadenin bir nesne veya dizi gibi sayıya dönüştürülemeyen bir türde olmadığından emin olun.
- VBA IsNumeric fonksiyonu, tam sayılar, ondalık sayılar ve bilimsel gösterimdeki sayılar dahil olmak üzere farklı sayısal biçimleri işleyebilir.
Sözdizimi
VBA IsNumeric fonksiyonunun sözdizimi basittir.
IsNumeric(expression)- ifade : Bu, sayısal değerlendirme için test etmek istediğiniz değişken veya değerdir. Herhangi bir veri türü olabilir .
VBA IsNumeric Fonksiyonu Nasıl Kullanılır?
VBA IsNumeric fonksiyonunu kullanmak birkaç basit adımdan oluşur:
- Excel'i açın ve VBA düzenleyicisini açmak için ALT + F11 tuşlarına basın.

- Menüde “Ekle”ye tıklayıp “Modül”ü seçerek yeni bir modül ekleyin.

- Yeni eklediğiniz modülün içerisine yeni bir alt rutin tanımlayarak başlayın.
Örneğin: Sub CheckNumeric()
- İhtiyaçlarınıza bağlı olarak kullanmayı düşündüğünüz değişkenleri tanımlayabilirsiniz.
Basit kontroller için değişkenleri açıkça bildirmeniz gerekmeyebilir, ancak daha karmaşık mantık veya aralıklar arasında döngü için değişken bildirimi yararlıdır.
Örneğin: Dim myValue As Variant - Alt rutininizde, bir değerin sayısal olup olmadığını kontrol etmek için VBA IsNumeric fonksiyonunu kullanın.
myValue'ye bir değer atayın (veya doğrudan bir değer veya hücre başvurusu kullanın) ve değerlendirmek için IsNumeric'i kullanın.
Örneğin:
myValue = “123”
If IsNumeric(myValue) Then
MsgBox myValue & ” is numeric”
Else
MsgBox myValue & ” is not numeric”
End If - Alt rutininizi çalıştırmak için VBA düzenleyicideyken F5 tuşuna basın veya “Çalıştır” butonunu kullanın.
- Alt rutininizi çalıştırdıktan sonra, uyguladığınız mantığa bağlı olarak, kontrol edilen değerin sayısal olup olmadığını gösteren bir mesaj kutusu görünecektir.
Örnekler
Örnek 1
Bu örnek, bir sütundaki hücre aralığı üzerinde nasıl döngü kuracağınızı ve her hücrede sayısal bir değer olup olmadığını nasıl belirleyeceğinizi gösterir. Sonucu (True veya False) yanındaki hücreye girer.

- Adım 1: Kodunuz için IsNumeric_CheckColumn adında yeni bir alt rutin tanımlayarak başlayın.

- Adım 2: Döngü sırasında Range nesnesi içindeki her hücreyi temsil edecek cell adında bir değişken bildirin.

- Adım 3: A2:A7 aralığındaki her hücre üzerinde yineleme yapacak bir döngü başlatın.

- Adım 4: Döngü içerisinde bu satır, geçerli hücredeki değerin sayısal olup olmadığını değerlendirir ve Boole sonucunu (Doğru veya Yanlış) sağdaki bitişik hücreye yazar.

- Adım 5: Bu, aralıktaki her hücre için tekrarlanan döngünün sonunu işaretler.

- Adım 6: Kodu çalıştırın
Bu kodu çalıştırdığınızda, belirlenen aralıktaki her hücre sayısal değerler açısından metodik olarak incelenir. Sonuçlar doğrudan sağdaki komşu hücrelere gönderilir ve sütununuzdaki çeşitli veri türlerine ilişkin hızlı bir görsel referans sağlar.

İşte kodun tamamı:
Sub IsNumeric_CheckColumn()
Dim cell As Range
For Each cell In Range(“A2:A7”)
cell.Offset(0, 1).Value = IsNumeric(cell.Value)
Next cell
End Sub
Örnek 2
Bu örnek, metin, sayılar ve dizeler ile diğer karışık veri türlerini içeren bir satırda VBA IsNumeric'i nasıl uygulayacağınızı gösterir. Her hücreyi analiz ettikten sonra, sonuç hemen altındaki satırda görüntülenir.

- Adım 1: IsNumeric_MixedDataTypes adında yeni bir alt rutin tanımlayarak başlayın.

- Adım 2: Döngüde incelenecek her bir hücreyi temsil etmek için hücre adında bir Aralık nesnesi değişkeni bildirin.

- Adım 3: A2:F2 aralığındaki her bir hücreyi dolaşacak ve bir satırı kapsayacak bir döngü başlatın.

- Adım 4: Bu satır, satırdaki her hücre için değerin sayısal olup olmadığını kontrol eder ve sonucu doğrudan incelenen hücrenin altına yazar.
Bu satır döngüyü sonlandırır ve betiğin aralığın sonuna ulaşılana kadar bir sonraki hücreye geçmesine olanak tanır.

- Adım 5: Şimdi çalıştır'a tıklayın.
Bu makroyu çalıştırdığınızda, belirtilen satırdaki her hücre sayısal içerik açısından değerlendirilir ve bulgular (Doğru veya Yanlış) hemen altındaki satırda belgelendirilir.

İşte kodun tamamı:
Sub IsNumeric_MixedDataTypes()
Dim cell As Range
For Each cell In Range(“A2:F2”)
cell.Offset(1, 0).Value = IsNumeric(cell.Value)
Next cell
End Sub
Örnek 3
Bu örnekte, VBA IsNumeric fonksiyonunun sayısal değerleri doğru bir şekilde tanımlama yeteneğini göstererek, boş hücreler ve özel karakter veya semboller içeren hücreler gibi özel durumların nasıl ele alınacağını göreceğiz.

- Adım 1: IsNumeric_SpecialCases adında yeni bir alt rutin tanımlayın ve ardından gelecek betiği yazmaya hazırlanın.

- Adım 2: Döngü amaçlı cell adında bir Range nesne değişkeni ve TestRange adında başka bir Range nesnesi bildirin ve bunu özellikle A1:A10 aralığına ayarlayın.

- Adım 3: Bu satır, TestRange içindeki her hücrede bir döngü başlatarak bireysel analiz yapılmasına olanak tanır.

- Adım 4: Döngü içinde, bu segment önce bir hücrenin boş olup olmadığını kontrol eder, doğruysa bitişik hücrede "Boş Hücre" olarak işaretler. Aksi takdirde, hücrenin içeriğini sayısal değerler açısından değerlendirir ve sonucu sağa yazar.

- Adım 5: Bu komut döngü sürecinin tamamlandığını belirtir. Komut dosyası, tanımlanan aralıktaki her hücrede yineleme yaparak her biri için belirtilen kontrolleri ve eylemleri gerçekleştirir.

- Adım 6: Şimdi makroyu kaydedin ve çalıştır'a tıklayın. Kod çalıştırıldığında, belirtilen aralıktaki her hücreyi işler (A1:A10). Her hücrenin boş olup olmadığını kontrol eder ve doğru olduğunda bitişik hücreleri "Boş Hücre" olarak işaretler.
Boş olmayan hücreler için içeriğin sayısal olup olmadığını değerlendirir ve sonucu (Doğru veya Yanlış) doğrudan sağdaki hücreye kaydeder.

İşte kodun tamamı:
Sub IsNumeric_SpecialCases()
Dim cell As Range
Dim TestRange As Range
Set TestRange = Range(“A1:A10”)
For Each cell In TestRange
If cell.Value = “” Then
cell.Offset(0, 1).Value = “Empty Cell”
Else
cell.Offset(0, 1).Value = IsNumeric(cell.Value)
End If
Next cell
End Sub
