Normal İfadeleri Excel'de VBScript olmadan yapabilir misiniz?


22

Başka bir hücrenin içeriğini düzenli bir şekilde aramak için hücreye koyabileceğim bir Excel işlevi arıyorum. Bunu yapmak için uygun bir şey var mı? Bunun için daha hızlı kod yazabildiğim için bunun için e-tabloya VB Script eklememeyi tercih ederim. Sadece en hızlı çözüm bir işlev olacaktır. Yine de bir tane bulamıyorum. Yani belki hiçbir şey yoktur.

Bilen var mı?

Yanıtlar:


12

VBScript.dll regex işlevlerini Excel'e göstermek için VBE'deki 'Microsoft VBScript Normal İfadeler 5.5' öğesine bir başvuru ekleyebilirsiniz. Basit bir regex işlevi yazmak o zaman önemsizdir;

Public Function emailCheck(rawEmail As String) As Boolean
    Dim reg As New RegExp
    reg.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,4}$"
    emailCheck = False
    If reg.Test(rawEmail) Then
        emailCheck = True
    End If
End Function

Nasıl bir referans eklediğinizi açıklayabilir misiniz?
Chris Walsh


3

MoreFunc.xll , Regex işlevselliğine sahip ücretsiz bir eklentidir .

Regex'i de yapabilecek başka üçüncü taraf eklentileri var.

Bunu yapmak için gerçek bir yerel çalışma sayfası işlevi yoktur, ancak belirli bir aramanız varsa, işi yapmak için muhtemelen diğer işlevleri kullanabilirsiniz.


Onay için teşekkürler. O kütüphaneyi buldum, ama bizim de kütüphane dağıtmamızı gerektirmeyen bir şeye sahip olmayı umuyorduk.
Erick Robertson

@Erick, evet, elektronik tablolarıma eklentiler eklemekten nefret ediyorum, onları takip etmek büyük bir acı. Tamamen regex esnekliğine ihtiyacınız olmadığı sürece, muhtemelen işi diğer işlevlerle de yapabilirsiniz. Excel'de birçok püf noktası var. Özel istekleri buraya gönderin.
Lance Roberts

2

Belirli bir hücrede normal ifade eşleşmesi sayısını veren bir işlev:

Public Function regexCount(regex As String, ref As Range) As Integer
    Dim reg As New RegExp
    reg.Global = True
    reg.Pattern = regex
    regexCount = reg.Execute(ref.Value).Count
End Function

('Microsoft VBScript Normal İfadeler 5.5' e bir referans eklenmesini gerektirir - VBA editöründen 'Araçlar' -> 'Referanslar' a gidin ve bu referans için onay kutusunu işaretleyin.)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.