regex - 如何使用 Excel 公式来验证自定义的电子邮件地址?

标签 regex excel vba excel-formula email-validation

我对 excel VBA 宏非常陌生,我只想纠正一个 excel 公式来验证已自定义的电子邮件。例如,我要查找的电子邮件必须以“@gmail.com”结尾,并且必须拒绝以下邮件;

  • [无话]@gmail.com
  • [空格]@gmail.com
  • xxx@gmail.com[任意字]
  • xxx@gmail..com
  • xxx@gmail/.com
  • xxx@gmail/com

  • 为了验证电子邮件地址,我编写了一个正则表达式,如下所示;
    ^([a-zA-Z0-9_\-\.]+)@(\b(gmail)\b)+(\.\b(com)\b)$
    
    我尝试了不同的方法将这些正则表达式应用于像 =MATCH 这样的 excel 公式,但它不起作用。我只需要使用 Excel 公式完成此电子邮件验证。
    如果有人可以帮助我,我将不胜感激?

    最佳答案

    在使用 excel 中的正则表达式之前;你需要在里面设置VB才能使用它。请按照以下步骤操作:
    将 VBA 引用添加到“Microsoft VBScript 正则表达式 5.5 ”的步骤

  • 选择“开发者”选项卡 (I cannot find this tab what to do?)
  • 从“代码”功能区部分选择“Visual Basic”图标
  • 在“Microsoft Visual Basic for Applications”窗口的顶部菜单中选择“工具”。
  • 选择“引用”
  • 选中“Microsoft VBScript 正则表达式 5.5”旁边的框以包含在您的工作簿中。
  • 单击“确定”。
  • 在“Project-VBAProject” Pane (在编辑器窗口的左上角)中右键单击您的工作簿名称,然后从上下文菜单中选择“插入”->“模块”。屏幕截图可能如下所示:
    enter image description here
  • 现在;模块内部;粘贴下面的函数。
  • Function simpleCellRegex(MyVal As String) As String
        
        Dim regEx As New RegExp
    
        'Below is the flag options'
        With regEx
            .Global = True
            .Pattern = "^[\w.-]+@gmail\.com$"
        End With
    
        If regEx.Test(MyVal) Then
            simpleCellRegex = "Matched"
        Else
            simpleCellRegex = "Not matched"
        End If
    
    End Function
    
    将整个工作簿另存为 Excel 启用宏的工作簿而不是 Excel 工作簿 enter image description here
    而已。你都准备好了。
    现在转到您的 excel 表并在您的公式选项卡中使用上面声明的宏。我用了
    结果:
    Result

    关于regex - 如何使用 Excel 公式来验证自定义的电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62631315/

    相关文章:

    excel - 为什么错误处理程序不能处理第二个错误?

    javascript - 正则表达式匹配被覆盖

    html - 在 C++ 中从内存中嵌入 html 和磁盘上的图像

    excel - 如何在Excel中将数字格式化为文本存储?

    vba - 为什么在电子表格中分配引用有时有效有时无效?

    c# - Cell by Cell写的很慢,但是我遇到了range写的情况

    java - JAX-RS @Path 可以指定长度要求吗?

    java - matcher.find() 返回 false 而它应该返回 true

    ms-access - Microsoft Visual Basic 运行时错误

    excel - Delphi自动化调整图表大小