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:

VBA dizeden sayıları kaldır

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?

Yorum ekle

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