Herkese iyi forumlar.
Şirketteki hukuk ve finans departmanından gelen bir veri setinde, tek bir hücrenin içerisinde serbest metin olarak yazılmış açıklamalar var (Örn: "Ahmet Yılmaz, 12345678901 TC numaralı şahıs TR56000... nolu hesaba ödeme yaptı"). Bu hücrelerin içinden sadece TC Kimlik Numaralarını (11 haneli) ve IBAN bilgilerini (TR ile başlayan 26 karakter) ayıklayıp yan sütunlara yazdırmam gerekiyor.Klasik InStr, Left, Right veya Mid fonksiyonlarıyla metin kalıpları sürekli değiştiği için başarılı olamadım. VBScript.RegExp (Regular Expressions) kütüphanesini RegExp.Global = True ve Execute metoduyla döngüye soktuğumda, 80.000 satırlık veride inanılmaz bir yavaşlama ve bazen Excel'in çökme sorununu yaşıyorum.Büyük veride RegEx nesnesini hafızada şişirmeden, en hızlı şekilde eşleşen tüm dinamik kalıpları (Pattern) tek seferde array'e alıp alt alta yazdırmanın en optimize VBA mimarisi nasıl olmalıdır? Örnek bir örnek şablon kod paylaşabilir misiniz?
Şirketteki hukuk ve finans departmanından gelen bir veri setinde, tek bir hücrenin içerisinde serbest metin olarak yazılmış açıklamalar var (Örn: "Ahmet Yılmaz, 12345678901 TC numaralı şahıs TR56000... nolu hesaba ödeme yaptı"). Bu hücrelerin içinden sadece TC Kimlik Numaralarını (11 haneli) ve IBAN bilgilerini (TR ile başlayan 26 karakter) ayıklayıp yan sütunlara yazdırmam gerekiyor.Klasik InStr, Left, Right veya Mid fonksiyonlarıyla metin kalıpları sürekli değiştiği için başarılı olamadım. VBScript.RegExp (Regular Expressions) kütüphanesini RegExp.Global = True ve Execute metoduyla döngüye soktuğumda, 80.000 satırlık veride inanılmaz bir yavaşlama ve bazen Excel'in çökme sorununu yaşıyorum.Büyük veride RegEx nesnesini hafızada şişirmeden, en hızlı şekilde eşleşen tüm dinamik kalıpları (Pattern) tek seferde array'e alıp alt alta yazdırmanın en optimize VBA mimarisi nasıl olmalıdır? Örnek bir örnek şablon kod paylaşabilir misiniz?
Ekli dosyalar
Bu konu çözüme ulaşmıştır yüklü dosyaları indirmek için Bronz üye olunuz.
Bu dosyayı indirmek için yetkiniz bulunmamaktadır.