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?

Yorum ekle

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