Yapılandırılmamış bir metin hücresini alacak, sdi değeri olarak adlandırılan bir şey aramalı ve bulunursa, bu sayıyı döndürecek olan Excel 2010 için bir işlev yazmaya çalışıyorum. Sdi değeri sdi #### olarak görünecektir. İstediğim SDI ve onu takip sepecific numaralarını döndürmektir, böylece hücrede "Bazı metin sdi 1234 biraz daha metin" işlevi SDI 1234.VBA'da (excel) bir normal ifadeyi döndürme (excel)
dönecektir Bu benim fonksiyondur:
Function SdiTest(LookIn As String) As String
Dim temp As String
Dim STA As Object
temp = ""
Set SDI = CreateObject("VBScript.RegExp")
SDI.IgnoreCase = True
SDI.Pattern = "sdi [1-9]*"
SDI.Global = True
If SDI.Test(LookIn) Then
temp = SDI.Execute(LookIn)
End If
SdiTest = temp
End Function
Eğer sdi numarası yoksa, if ifadesini hiçbir zaman girmez ve boş dizeyi dutifully verir. Eğer bir sdi numarası varsa # VALUE olsun!
Neyi eksik?
Evet, VBScript etkinleştirildi. Ek olarak, VBA'da regex'i kullanmakta sıkıntı çektim ve internette yararlı bilgiler bulmak zor. İyi çevrimiçi kaynaklara linkler takdir edilecektir.
Eğer
Harika cevap, fonksiyon için teşekkürler! –
Teşekkür ederim Issun - fonksiyonunuz harika çalışıyor – TheoRose
+1 güzel bitti Issun – brettdj