Bu dosya, içinde harf, rakam ve noktalama bir arada bulunan metinlerden yalnızca rakamların alınmasını sağlar. İşlem, VBA ile yazılmış Rakamlari_Ayir adlı kullanıcı tanımlı fonksiyon (KTF) ve RegExp yöntemiyle yapılır. Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- Sheet1: B2:C4 aralığında örnek veriler bulunur. B2 hücresi "Metin" başlığıdır; B3 hücresinde "Ex123cel123Depo.456Com", B4 hücresinde "Al987i654Vel123" metni yer alır.
- Module1: Rakamlari_Ayir fonksiyonunun bulunduğu VBA modülüdür.
Makrolar
- Rakamlari_Ayir(Hucre As Range): Verilen hücredeki metni vbscript.regexp nesnesiyle tarar. Kullanılan desen \d+ olduğundan metindeki ardışık rakam grupları bulunur; bulunan gruplar sırayla birleştirilerek tek bir metin olarak döndürülür. Örneğin "Al987i654Vel123" metninden 987654123 elde edilir.
- Kod yalnızca hücre değerini okur ve sonucu döndürür; dosya silme, dışarıya bağlantı gibi işlemler içermez.
- Fonksiyon, bir hücre için sonuç üretir. Birden çok hücreli aralık verilirse döngü sonunda yalnızca son hücrenin sonucu döndürülür; bu nedenle her satır için ayrı hücre başvurusu kullanılır.
- Sonuç metin olarak döner. Başında sıfır bulunan rakamlar korunur.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Metinleri B sütununa girin veya örnek metinleri değiştirin.
- Sonucun görüneceği hücreye fonksiyonu yazın. B3 hücresi için örnek kullanım:
=Rakamlari_Ayir(B3) - Formülü aşağı kopyalayarak diğer satırlara uygulayın.
- Fonksiyonu kendi dosyanızda kullanmak için Module1 içindeki kodu VBA düzenleyicisinde (Alt+F11) yeni bir modüle taşıyın ve dosyayı .xlsm olarak kaydedin.