Excel 删除包含无效电子邮件的行



我有一个大的联系人电子表格,有姓名、电话、电子邮件等列...其中有这么多行包含无效电子邮件,所以我想删除包含无效电子邮件的行,有什么建议吗?

最好的方法是使用 VBA 的 RegExp55 库编写一个用户定义的函数来验证单元格是否包含有效的电子邮件地址 (TRUE( 或不包含 (FALSE(。

您可以开始使用此代码:

Option Explicit
Const MODULE_NAME As String = "modMail"
'' Validate email address
Public Function ValidateEmailAddress(ByVal strEmailAddress As String) As Boolean
    On Error GoTo Catch
    Dim objRegExp As New RegExp
    Dim blnIsValidEmail As Boolean
    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    objRegExp.Pattern = "^([a-zA-Z0-9_-.]+)@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$"
    blnIsValidEmail = objRegExp.Test(strEmailAddress)
    ValidateEmailAddress = blnIsValidEmail
    Exit Function
Catch:
    ValidateEmailAddress = False
    MsgBox "Module: " & MODULE_NAME & " - ValidateEmailAddress function" & vbCrLf & vbCrLf _
        & "Error#:  " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Function

我从本教程中获取的。如果您查看链接,您可以找到有关如何使用它的说明。

有一个解决方案,它与我的大列表完美配合,这不是确切的答案,需要一个 PHP 平台才能运行。

Input_List.csv

姓名 |电子邮件 |电话

这是我上表的代码:

<?php 
    $input_file = "Input_List.csv"; //source file
    $output_file = "Output_List.csv"; //cleaned output file
    $fp1 = fopen($input_file, "r"); 
    $fp2 = fopen($output_file, 'w'); 
    if ($fp1) {
        while (($lines = fgetcsv($fp1)) !== false) {
            //print_r($lines);
            $inv_flag = 1; 
            $cf_x_c_d = ''; 
            $co = 0; //incrimenting tocken for column
            foreach ($lines as $cf_x) {
                if($co == 1){ //check if 2nd column, 2nd column is the email column
                    if(validate_email($cf_x)){
                        $cf_x_c_d .= $cf_x.",";
                    }else{
                        $inv_flag = 0;
                    }
                }elseif($inv_flag == 1){
                    $cf_x_c_d .= $cf_x.",";
                }
                $co = $co + 1;
            }   
            if($inv_flag == 1){
                $cf_x_c_d_arr = explode(',', $cf_x_c_d);
                fputcsv($fp2, array_values($cf_x_c_d_arr));
            }
        }
        fclose($fp1);
        fclose($fp2);
    }   
    function validate_email($email){
        $email = str_replace(' ', '', $email);
        if(filter_var($email, FILTER_VALIDATE_EMAIL)) {
            return true;
        }else{
            return false;
        }
    }
  ?>

最新更新