Vba: bir dizeden sayılar nasıl kaldırılır
Excel’deki bir hücredeki bir dizedeki sayıları kaldırmak için VBA’da aşağıdaki işlevi oluşturabilirsiniz:
Function RemoveNumbers(CellText As String) As String
With CreateObject(" VBScript.RegExp ")
.Global = True
.Pattern = " [0-9] "
RemoveNumbers = .Replace(CellText, "")
End With
End Function
Daha sonra Excel’de istediğiniz herhangi bir hücredeki sayıları kaldırmak için bu işlevi kullanabilirsiniz.
Aşağıdaki örnekte bu fonksiyonun pratikte nasıl kullanılacağı gösterilmektedir.
Örnek: VBA Kullanarak Bir Dizeden Sayıları Kaldırma
Excel’de aşağıdaki çalışan kimlikleri listesine sahip olduğumuzu varsayalım:
Diyelim ki Çalışan Kimliği sütunundaki her dizedeki rakamları kaldırmak istiyoruz.
Bunu yapmak için VBA’da aşağıdaki fonksiyonu oluşturabiliriz:
Function RemoveNumbers(CellText As String) As String
With CreateObject(" VBScript.RegExp ")
.Global = True
.Pattern = " [0-9] "
RemoveNumbers = .Replace(CellText, "")
End With
End Function
Bu işlevi oluşturduktan sonra, çalışan numarasını tüm rakamlar kaldırılmış olarak A2 hücresine döndürmek için B2 hücresine aşağıdaki formülü yazabiliriz:
=RemoveNumbers( A2 )
Daha sonra bu formülü tıklayıp B sütununda kalan her hücreye sürükleyebiliriz:
B sütunu, A sütunundaki dizelerin her birini, rakamları kaldırılmış şekilde görüntüler.
Örneğin:
- 4009Andy, Andy oluyor
- 1540Bob, Bob’a dönüşür
- 1500Çad09 Çad olur
- 1600Doug, Doug olur
Ve benzeri.
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?