VBA Dize Veri Türü (Dim Değişkeni)

Dize Değişken Türü

Dize veri türü, VBA'daki en yaygın veri türlerinden biridir. Metnin “dizelerini” saklar.

Bir değişken String değişkeni bildirmek için Dim İfadesini kullanırsınız (Boyut'un kısaltması):

1 Dize olarak Dim strName

Bir değişkene değer atamak için eşittir işaretini kullanırsınız:

1 strName = "Fred Smith"

Bunu bir prosedüre koymak şöyle görünür:

12345678 Alt strÖrnek()'diziyi ilan etDize olarak Dim strName'dizeyi doldurstrName = "Fred Smith"'mesaj kutusunu gösterMsgBox dize adıAlt Bitiş

Yukarıdaki kodu çalıştırırsanız, aşağıdaki mesaj kutusu gösterilecektir.

Sabit Dize Değişkeni

Aslında 2 tür string değişken vardır - sabit ve değişken.

"Değişken" dize değişkeni (önceki örnekte gösterilmiştir), dizenizin herhangi bir uzunlukta olmasını sağlar. Bu en yaygın olanıdır.

"Sabit" dize değişkeni, dizenin boyutunu tanımlar. Sabit bir dize 65.400 karaktere kadar tutabilir.

1 Dize olarak Dim strName *20

Sabit bir değişken tanımladığınızda, daha az karakter kullansanız bile değişkendeki karakter sayısı yerinde kilitlenir.

Aşağıdaki grafikteki boşluklara dikkat edin - değişken, 'Fred Smith' 20 karakterden az olduğundan, dizedeki diğer karakterler için yer tutuculara sahiptir.

Ancak, uzunluğu belirtmeden bir dize tanımladıysanız, dize yalnızca kendisine iletilen sayıda karakteri tutacaktır.

Modül veya Global Düzeyde Dize Değişkeni Bildirin

Önceki örnekte, bir prosedür içinde String değişkenini bildirdiniz. Bir prosedürle bildirilen değişkenler yalnızca o prosedür içinde kullanılabilir.

Bunun yerine, modül veya global düzeyde String değişkenlerini bildirebilirsiniz.

Modül Seviyesi

Modül seviyesi değişkenler, kod modüllerinin en üstünde şu şekilde bildirilir: loş Beyan.

Bu değişkenler, o kod modülündeki herhangi bir prosedürle kullanılabilir.

Küresel düzey

Küresel düzey değişkenler ayrıca kod modüllerinin en üstünde bildirilir. Ancak, kullanmak yerine loş ifadesini kullanırsınız Halk dize değişkeninin VBA Projeniz boyunca kullanılmaya uygun olduğunu belirten ifade.

1 Public strName as String

Dize değişkenini modül düzeyinde bildirirseniz ve farklı bir modülde kullanırsanız, bir hata oluşur.

Ancak, dize değişkenini bildirmek için Public anahtar sözcüğünü kullanırsanız, hata oluşmaz ve prosedür mükemmel şekilde çalışır.

Dize olarak depolanan Değerleri Dönüştür

Excel'de metin olarak depolanan değerleriniz olabilir - örneğin, sayılar yerine metin getirmiş olabilecek bir CSV dosyasını içe aktarmış olabilirsiniz.

A1'deki değerin sola hizalı olduğunu ve bir metin değerini gösterdiğini unutmayın.

kullanabilirsiniz VBA İşlevi bu sayıları metne dönüştürmek için kullanılabilir

12345678 Alt ConvertValue()'dizeyi doldurstrQty = Aralık ("A1")'çifti dizeyle doldurundblQty = strQty'aralığı sayı ile doldurunAralık("A1") = dblQtyAlt Bitiş

Kodu çalıştırdığınızda, sayı sağa hareket ederek artık bir sayı olarak saklandığını gösterir.

Bu, özellikle çok sayıda hücre arasında döngü yaptığınızda kullanışlıdır.

123456789101112131415 Alt ConvertValue()Dim strQty As String, dblQty As DoubleDim rw Tamsayı, i Tamsayı'dönüştürülecek satırları sayrw = Aralık("A1", Aralık("A1").End(xlDown)).Rows.Count'hücreler arasında dolaşın ve her birini bir sayıya dönüştürüni = 0 için rw - 1'dizeyi doldurstrQty = Aralık("A1").Offset(i, 0)'çifti dizeyle doldurundblQty = strQty'aralığı sayı ile doldurunAralık("A1").Offset(i, 0) = dblQtysonraki benAlt Bitiş

Sonuç, tüm hücrelerin daha sonra sayılara dönüştürülmesi olacaktır.

VBA Kodu Örnekleri Aramaktan Bıktınız mı? AutoMacro'yu deneyin!

Değerler olarak depolanan Dizeyi Dönüştür

Benzer şekilde, bir dizgeden bir değere dönüştürmeniz gereken değerler olabilir - örneğin, bir telefon numarasında baştaki sıfıra ihtiyacınız varsa.

123456789101112131415 Alt ConvertString()Dim strPhone As String, dblPhone As DoubleDim rw Tamsayı, i Tamsayı'dönüştürülecek satırları sayrw = Aralık("A1", Aralık("A1").End(xlDown)).Rows.Count'hücreler arasında dolaşın ve her birini bir sayıya dönüştürüni = 0 için rw - 1'dizeyi doldurdblPhone = Aralık("A1").Offset(i, 0)'çifti dizeyle doldurunstrPhone = "'0" & dblPhone'aralığı sayı ile doldurunAralık("A1").Offset(i, 0) = strphonesonraki benAlt Bitiş

Excel'e değeri dize olarak girmesini söylemek için metin dizesine sıfırdan önce bir kesme işareti (') ile başlamanız gerektiğini unutmayın.

wave wave wave wave wave