Vba: birden fazla sınırlayıcıya dayalı bir dize nasıl bölünür


Bir dizeyi VBA’da birden çok sınırlayıcıya göre 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
    newString = Replace(Range(" A " & i), " - ", " ")
    SingleValue = Split(newString, " ")
    
       For j = 1 To 3
           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 tire veya boşluklara göre böler ve ardından her dizenin elde edilen öğelerini B, C ve D sütunlarındaki bitişik hücrelere atar.

Not : Bu makro önce her kısa çizgiyi bir boşlukla değiştirir, ardından her dizeyi boşlukların bulunduğu yere göre böler.

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

Örnek: Bir dizeyi VBA’daki birden çok sınırlayıcıya göre bölme

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

Her adı kısa çizgi veya boşluklara göre bölmek istediğimizi ve ardından her dizenin elde edilen öğelerini yeni hücrelere atamak istediğimizi varsayalım.

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

 SubSplitString ()

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

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

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

Birden çok sınırlayıcıya dayalı VBA bölünmüş dize

Bu makronun, A sütunundaki her dizeyi boşluklara ve kısa çizgilere göre böldüğünü ve her dizenin ayrı ayrı metin öğelerini B, C ve D sütunlarında görüntülediğini unutmayın.

Not #1: Bu örnekte dizeleri tire ve boşluklara göre bölüyoruz, ancak dizeleri Değiştir ve Böl işlevlerinde belirterek istediğiniz sınırlayıcılara göre bölebilirsiniz.

Not #2 : 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