我正在寻找一个 Excel 函数,可以将其放入单元格中,以便对另一个单元格的内容进行正则表达式搜索。有什么可以做到这一点的吗?我宁愿不必为此将 VB 脚本添加到电子表格中,因为我可以更快地硬编码解决方案。只是最快的解决方案是函数。但我找不到。所以也许什么都没有。
有人知道吗?
答案1
您只需在 VBE 中添加对“Microsoft VBScript Regular Expressions 5.5”的引用,即可将 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
答案2
.xla 包位于本网站对我来说非常有效。
答案3
答案4
以下是我如何通过正则表达式替换从单元格中提取数字:
Function REGREP(value As Range, searchString As String, replaceString As String,
Optional ignoreCase As Boolean = True, Optional searchGlobal As Boolean = True)
'Dim reg As New RegExp
Dim reg As Object
Set reg = CreateObject("vbscript.regexp")
reg.ignoreCase = ignoreCase
reg.Global = searchGlobal
reg.Pattern = searchString
REGREP = reg.replace(value.value, replaceString)
End Function
Function ASNUM(value As Range)
ASNUM = REGREP(value, "[^0-9.]+", "")
End Function
'Usage:
REGREP(A1, "[^0-9.]+", "")
ASNUM(A1)
笔记首先,您需要使用 在 Excel 中打开 Visual Basic Alt + F11
。然后单击Tools -> References
,向下滚动到Microsoft VBScript Regular Expressions 5.5
,然后将其添加进去。RegExp
输入后就会显示出来。
您需要将文件保存为 Excel 启用宏的工作簿 (*.xlsm),以便保留宏...您还可以导出和导入您的代码模块。