Vba: bir dize bir diziye nasıl bölünür (örnekle)


VBA kullanarak bir dizeyi diziye bölmek için aşağıdaki temel sözdizimini kullanabilirsiniz:

 SubSplitString ()

    Dim SingleValue() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SingleValue = Split(Range(" A " & i), " ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SingleValue(j - 1)
       Next j
       
    Next i
    
End Sub

Bu özel örnek, A2:A7 aralığındaki her dizeyi, her dizedeki boşluklara göre böler, ardından her dizenin elde edilen öğelerini B2:B7 ve C2:C7 hücre aralıklarına atar.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Bir Dizeyi Diziye Bölmek için VBA Kullanma

Excel’de aşağıdaki dize listesine sahip olduğumuzu varsayalım:

Diyelim ki her dizeyi boşluklara göre bölmek istiyoruz, sonra her dizenin elde edilen öğelerini yeni hücrelere atamak istiyoruz.

Bunun için aşağıdaki makroyu oluşturabiliriz:

 SubSplitString ()

    Dim SplitValues() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SplitValues = Split(Range(" A " & i), " ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SplitValues(j - 1)
       Next j
       
    Next i
    
End Sub

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

VBA dizeyi diziye böldü

B ve C sütunlarının, A sütunundaki her tam adın adını ve soyadını içerdiğini unutmayın.

Ayrıca bir diziyi farklı bir sınırlayıcıya göre bölmek için VBA Bölme işlevini kullanabileceğinizi de unutmayın.

Örneğin aşağıdaki e-posta listesine sahip olduğumuzu varsayalım:

Diyelim ki her e-postayı @ sembolünün göründüğü yere göre bir diziye bölmek istiyoruz.

Bunun için aşağıdaki makroyu oluşturabiliriz:

 SubSplitString ()

    Dim SplitValues() As String
    Dim i As Integer
    Dim j As Integer

    For i = 2 To 7
    
    SplitValues = Split(Range(" A " & i), " @ ")
    
       For j = 1 To 2
           Cells(i, j + 1).Value = SplitValues(j - 1)
       Next j
       
    Next i
    
End Sub

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

Bölme işlevi, @ sembolüne göre A sütunundaki her e-postayı böler ve elde edilen öğeleri B ve C sütunlarında görüntüler.

Not : VBA Split işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde VBA kullanarak diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

VBA: Bir dizedeki karakterlerin oluşumları nasıl sayılır?
VBA: bir dizenin başka bir dize içerip içermediği nasıl kontrol edilir
VBA: Belirli bir metin içeren hücreler nasıl sayılır?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir