Vba: bir dizeden karakterler nasıl kaldırılır
Bir dizeden karakterleri kaldırmak için VBA’da Change() yöntemini kullanabilirsiniz.
Aşağıdaki örnekler, bu yöntemin pratikte Excel’deki aşağıdaki dize listesiyle nasıl kullanılacağını gösterir:
Örnek 1: Bir dizedeki tüm karakterleri kaldırmak için VBA’yı kullanın (büyük/küçük harfe duyarlı)
Diyelim ki her dizeden “this” ifadesini kaldırmak istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
Sub RemoveChar() Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(Range(" A " & i), " this ", "") 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, “this” ifadesinin her tekrarı kaldırılmış olarak görüntüler.
Bu makronun büyük/küçük harfe duyarlı olduğunu unutmayın.
Yani, “bu”nun her geçtiği yer kaldırılır ancak “bu”nun her geçtiği yer olduğu gibi bırakılır.
Örnek 2: Bir dizedeki tüm karakterleri kaldırmak için VBA’yı kullanın (büyük/küçük harfe duyarlı değil)
Diyelim ki “this” ifadesini (büyük/küçük harfe bakılmaksızın) her dizeden kaldırmak istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
SubRemoveChar () Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "") 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, “this” ifadesinin her tekrarı kaldırılmış olarak görüntüler.
Bu değiştirmenin büyük/küçük harfe duyarlı olmadığını unutmayın.
Yani, “bu”nun (büyük harfle yazılmış olsun ya da olmasın) her geçtiği yer kaldırılır.
Bunu, her dizede “this” ifadesini aramadan önce A sütunundaki her dizeyi küçük harfe dönüştürmek için LCase yöntemini kullanarak başardık.
Örnek 3: Bir dizedeki karakterin ilk N örneğini kaldırmak için VBA’yı kullanın
Diyelim ki her dizeden “this” ifadesinin yalnızca ilk örneğini (büyük/küçük harfe bakılmaksızın) kaldırmak istiyoruz.
Bunun için aşağıdaki makroyu oluşturabiliriz:
SubRemoveChar () Dim i As Integer For i = 2 To 8 Range(" B " & i) = Replace(LCase(Range(" A " & i)), " this ", "", Count:=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, “this” ifadesinin yalnızca ilk geçtiği yer kaldırılarak görüntüler.
Belirli bir dizenin yalnızca ilk örneğini kaldırmak için Count:=1 kullandığımızı unutmayın; ancak 1’i, belirli bir dizenin ilk n kez geçtiği yerin yerine kaldırmak istediğiniz herhangi bir değerle değiştirebilirsiniz.
Not : VBA Değiştirme yöntemine ilişkin tüm belgeleri burada bulabilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA kullanılarak diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA: Bir dizedeki karakterlerin oluşumlarını sayma
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?