Vba: bir dizeden son karakter nasıl kaldırılır
VBA kullanarak bir dizedeki son karakteri kaldırmak için aşağıdaki temel sözdizimini kullanabilirsiniz:
Sub RemoveLastChar()
Dim i As Integer
Dim myString As String
For i = 2 To 11
myString = Range(" A " & i)
Range(" B " & i) = Left(myString, Len(myString) - 1)
Next i
End Sub
Bu özel örnek, A2:A11 aralığındaki her dizedeki son karakteri kaldırır ve sonuçları B2:B11 aralığında görüntüler.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: Dizelerden Son Karakteri Kaldırmak için VBA’yı Kullanma
Excel’de aşağıdaki basketbol takımı adları listesine sahip olduğumuzu varsayalım:
Diyelim ki her takım adından son karakteri kaldırmak istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub RemoveLastChar()
Dim i As Integer
Dim myString As String
For i = 2 To 11
myString = Range(" A " & i)
Range(" B " & i) = Left(myString, Len(myString) - 1)
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
B sütunu, A sütunundaki dizelerin her birini, son karakteri kaldırılmış olarak görüntüler.
Bunun yerine bir dizedeki son n karakteri kaldırmak istiyorsanız, Left yöntemindeki 1’i farklı bir sayıyla değiştirmeniz yeterlidir.
Örneğin bir stringin son 2 karakterini kaldırmak için aşağıdaki makroyu oluşturabiliriz:
Sub RemoveLastTwoChar()
Dim i As Integer
Dim myString As String
For i = 2 To 11
myString = Range(" A " & i)
Range(" B " & i) = Left(myString, Len(myString) - 2)
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
B sütunu, A sütunundaki dizelerin her birini, son iki karakter kaldırılmış olarak görüntüler.
Not : VBA Left yöntemine 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?