2017-05-23 37 views
0

我有一個大的接觸電子表格,用列名稱,電話,電子郵件等.. ,其中有無效的電子郵件,讓許多行,所以我想刪除它包含無效的電子郵件行, 有什麼建議麼?刪除Excel中的行與無效的電子郵件

+0

寫一些VBA代碼。如果你要刪除這些行,然後從底部開始並繼續。 – Jeeped

+0

你知道任何VBA片段嗎?請提供...... –

+0

OK NP,我只是固定的一些PHP代碼的幫助的問題,我將它添加到回答中,我知道這不是確切的答案,但認爲有幫助的人。 –

回答

0

的最好方法是寫一個用戶定義的函數來驗證如果單元包含使用VBA的RegExp55文庫的有效電子郵件ADRESS(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 

這是我從這個tutorial了。如果您查看鏈接,您可以找到如何使用它的說明。

+0

感謝您的代碼,看起來像你的代碼可以驗證電子郵件,但我找刪除行如果它包含在電子郵件列無效郵件,我剛剛創建的工作細到我的一些PHP代碼,它可以用批量列表很好的工作。 ..但必須使用PHP平臺來運行,任何方式我會在答案部分添加這些代碼.... –

0

得到了一個解決方案,它與我的大名單完美地工作,這不是確切的答案,需要一個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; 
     } 
    } 

    ?>