คุณสามารถทำนิพจน์ปกติใน Excel โดยไม่ใช้ VBScript ได้หรือไม่


22

ฉันกำลังมองหาฟังก์ชัน Excel ที่ฉันสามารถใส่ในเซลล์เพื่อทำการค้นหา regex ของเนื้อหาของเซลล์อื่น มีอะไรให้ทำบ้างไหม? ฉันไม่ต้องการเพิ่ม VB Script ลงในสเปรดชีตสำหรับสิ่งนี้เพราะฉันสามารถเขียนรหัสได้เร็วขึ้น นี่เป็นเพียงวิธีแก้ปัญหาที่เร็วที่สุดที่จะเป็นฟังก์ชั่น แม้ว่าฉันจะหาไม่เจอ ดังนั้นอาจจะไม่มีอะไร

ใครรู้บ้าง

คำตอบ:


12

คุณสามารถเพิ่มการอ้างอิงถึง 'Microsoft VBScript Regular Expressions 5.5' ใน VBE เพื่อแสดงฟังก์ชั่น regex VBScript.dll ไปยัง Excel การเขียนฟังก์ชั่น regex อย่างง่ายนั้นน่าสนใจเช่น

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

คุณสามารถอธิบายวิธีเพิ่มการอ้างอิงได้อย่างไร
Chris Walsh


3

MoreFunc.xllเป็นโปรแกรมเสริมฟรีที่มีฟังก์ชันการทำงานของ Regex

มีส่วนเสริมอื่น ๆ ของบุคคลที่สามที่สามารถทำ Regex ได้เช่นกัน

ไม่มีฟังก์ชั่นดั้งเดิมของแผ่นงานจริง แต่ถ้าคุณมีการค้นหาที่เฉพาะเจาะจงคุณสามารถใช้ฟังก์ชั่นอื่นเพื่อให้งานสำเร็จลุล่วงได้


ขอบคุณสำหรับการยืนยัน ฉันพบว่าห้องสมุด แต่เราหวังว่าจะมีบางอย่างที่ไม่ต้องการให้เราแจกจ่ายห้องสมุดด้วย
Erick Robertson

@ เคล็ดลับใช่ฉันเกลียดการเพิ่มส่วนเสริมในสเปรดชีตของฉันความเจ็บปวดครั้งใหญ่ในการติดตามพวกเขา ถ้าคุณไม่ต้องการความยืดหยุ่นของ regex อย่างสมบูรณ์คุณก็สามารถทำงานให้สำเร็จได้ด้วยฟังก์ชั่นอื่น ๆ มีเทคนิคมากมายใน Excel โพสต์คำขอเฉพาะที่นี่
Lance Roberts

2

นี่คือฟังก์ชันที่ให้จำนวนนิพจน์ทั่วไปที่ตรงกันภายในเซลล์หนึ่ง ๆ :

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 Regular Expressions 5.5' - เพียงไปที่ 'เครื่องมือ' -> 'การอ้างอิง' จากตัวแก้ไข VBA และทำเครื่องหมายที่ช่องทำเครื่องหมายเพื่อการอ้างอิง)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.