VBA VAL | VBA VAL İşlevi nasıl kullanılır? (Örneklerle)

Excel VBA Val İşlevi

Vba'daki Val işlevi string işlevlerinin altına gelir, aynı zamanda VBA'da bir veri değişkeninden sayısal değerleri almak için kullanılan dahili bir işlevdir, bir değişken A10 değerine sahipse val işlevi bize çıktı olarak 10 verecektir, bu bağımsız değişken olarak bir dizeyi alır ve dizede bulunan sayıları döndürür.

VAL, VBA terminolojisinde VALUE anlamına gelir. Bu işlev, sayı içeren dizeyi gerçek bir sayıya dönüştürür. Örneğin, "1234 Global" metin dizesini sağlarsanız, yalnızca sayısal kısmı, yani 1234'ü döndürecektir.

Çoğu zaman, verileri web numaralarından indirdiğimizde veya aldığımızda, genellikle bir elektronik tabloda metin değerleri olarak saklanır. Excel'deki doğru işlevin farkında değilseniz, metni sayılara dönüştürmek en zor iştir. Normal bir çalışma sayfası işlevi olarak, sayıları temsil eden tüm dizeleri çalışma sayfasında basit bir işlevle tam sayılara dönüştürecek VALUE adlı bir işleve sahibiz. Bu yazıda, VAL işlevi kullanılarak VBA'da bunun nasıl elde edilebileceğini göstereceğiz.

Sözdizimi

Yalnızca bir argümanı vardır, yani String.

  • String: Sayısal kısmını çıkarmaya çalıştığımız basitçe bir string değeridir.

Dolayısıyla, VAL işlevi sağlanan dizeyi sayısal bir değere dönüştürür.

Not: VAL işlevi her zaman boşluk karakterlerini yok sayar ve boşluk karakteri veya karakterlerden sonraki sayıları okumaya devam eder.

Örneğin, sağlanan dizi "145 45 666 3" ise, boşluk karakterlerini yok sayacak ve sonucu "145456663" olarak döndürecektir.

Excel VBA'da VAL İşlevi Örnekleri

Bu VBA Val Function Excel Şablonunu buradan indirebilirsiniz - VBA Val Function Excel Template

Örnek 1

Basit bir sayı ile ilk örneği deneyelim, yani "14 56 47"

Aşağıdaki kod sizin için.

Kod:

 Sub Val_Example1 () Dim k As Variant k = Val ("14 56 47") 'Yukarıdakileri 145647 MsgBox olarak dönüştürün k End Sub 

VBA kodunu F5 tuşunu kullanarak veya manuel olarak çalıştırdığınızda, aşağıdaki görüntüdeki gibi tüm boşluk karakterlerini yok sayarak sonucu “145647” olarak döndürecektir.

Örnek 2

Bu örnekte, dizgenin sonucunun "+456" olduğunu göreceğiz.

Kod:

 Sub Val_Example2 () Dim k As Variant k = Val ("+ 456") 'Yukarıdakileri 456 MsgBox olarak dönüştürün k End Sub 

+456'yı yok sayarak değeri 456 olarak döndürmek için bu kodu manuel olarak veya F5 tuşuyla çalıştırabilirsiniz.

Örnek 3

Şimdi aynı sayıyı eksi işaretiyle deneyelim.

Kod:

 Sub Val_Example3 () Dim k As Variant k = Val ("- 456") 'Yukarıdakileri -456 MsgBox olarak dönüştür k End Sub 

Bu kod, değeri yalnızca -456 olarak döndürecektir çünkü operatör işaretli sayı gösterilmelidir.

Örnek 4

Şimdi bu “100 Kg” dizisini deneyelim.

Kod:

 Alt Değer_Örnek4 () Dim k Değişken olarak k = Değer ("100 KG") 'KG'yi yok sayar ve yalnızca 100 İletiKutu döndürür k Son Alt 

Bu kodu manuel olarak veya F5 tuşunu kullanarak çalıştırırsanız, bu yukarıdaki kod "KG" yi yok sayar ve VBA mesaj kutusunda yalnızca "100" döndürür.

Örnek 5

Şimdi tarih dizesini deneyin, yani "14-05-2018".

Kod:

Alt Değer_Örnek5 () Dim k Değişken Olarak k = Değer ("14-05-2019") 'Sonuç olarak 14 döndürür. MsgBox k End Sub

Yukarıdaki kod, sonuç olarak 14'ü döndürür çünkü VAL işlevi, sayısal karakterden başka herhangi bir şey bulana kadar yalnızca sayısal değeri getirebilir.

Örnek 6

Şimdi "7459Good456" dizesini deneyin.

Kod:

Alt Değer_Örnek6 () Dim k Değişken Olarak k = Değer ("7459 İyi 456") 'Sonuç olarak 7459 döndürür. MsgBox k End Sub

Bu, sayısal olmayan karakteri bulana kadar, yani sonuç 7459 olana kadar sayıları çıkaracaktır. Sayısal olmayan "İyi" değerinden sonra sayısal değerler olsa da, bundan sonraki sayıları tamamen yok sayar.

Örnek 7

Şimdi "H 12456" dize değerini deneyin.

Kod:

Alt Değer_Örnek7 () Dim k Değişken Olarak k = Değer ("H 12456") 'Sonuç olarak 0 döndürür. MsgBox k End Sub

Yukarıdaki kodu F5 kısayol tuşunu kullanarak veya manuel olarak çalıştırın, ardından sonucu sıfır olarak döndürür. Sağladığımız dizenin ilk karakteri sayısal olmayan bir karakter olduğu için sonuç sıfırdır.

Örnek 8

Şimdi bu “24545. 2 ”.

Kod:

Alt Değer_Örnek8 () Dim k Değişken Olarak k = Değer ("24545. 2") 'Sonuç olarak 24545.2 döndürür. MsgBox k End Sub

VBA VAL işlevi, nokta karakterini (.) Ondalık karakter olarak kabul ettiği ve sonucu buna göre döndürdüğü için kod 24545.2 sonucunu döndürür.