Чи можна робити регулярні вирази в Excel без VBScript?


22

Я шукаю функцію Excel, яку я можу помістити у комірку, щоб зробити регулярний пошук вмісту іншої комірки. Чи є щось доступне для цього? Я вважаю за краще не додавати VB Script до електронної таблиці для цього, тому що я можу швидше кодувати рішення. Просто найшвидше рішення було б функцією. Я не можу його знайти. Тож, можливо, немає нічого.

Хтось знає?

Відповіді:


12

Ви можете просто додати посилання на "Microsoft VBScript Regular Expressions 5.5" у VBE, щоб відкрити функції регулярного виразів VBScript.dll в Excel. Написання простої функції регулярних виразів є тривіальним, наприклад

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

Чи можете ви пояснити, як ви додаєте посилання?
Кріс Уолш


3

MoreFunc.xll - безкоштовний додаток, який має функцію Regex.

Є деякі інші сторонні додатки, які також можуть робити Regex.

Немає справжніх власних функцій робочого аркуша, щоб це зробити, але якщо у вас є конкретний пошук, ви можете, ймовірно, використовувати інші функції, щоб виконати роботу.


Дякуємо за підтвердження. Я знайшов цю бібліотеку, але ми сподівалися мати щось, що не вимагало від нас розповсюдження бібліотеки.
Ерік Робертсон

@Erick, так, я ненавиджу додавання доповнень до своїх електронних таблиць, великий біль, щоб слідкувати за ними. Якщо вам не потрібна повна гнучкість регулярного вираження, ви, ймовірно, можете виконати роботу з іншими функціями. В Excel дуже багато хитрощів. Опублікуйте конкретні запити тут.
Ленс Робертс

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 5.5" - просто перейдіть до "Інструменти" -> "Посилання" у редакторі VBA і встановіть прапорець для цього посилання.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.