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:
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?