2017-05-23 8 views
0

名前、電話番号、メールアドレスなどの大きな連絡先のスプレッドシートがあります... 無効なメールがたくさんあるので、無効なメールが含まれている行を削除したい、 助言がありますか?無効なメールでExcelの行を削除する

+0

は、いくつかのVBAコードを記述します。行を削除する場合は、一番下から開始して作業してください。 – Jeeped

+0

あなたはVBAスニペットを知っていますか?提供してください... –

+0

ok np、私はちょうどいくつかのPHPコードの助けを借りて問題を解決しました、私はそれを答えセクションに追加します、私は正確な答えではないが、誰かに役立つことがわかります。 –

答えて

0

VBAのRegExp55ライブラリを使用して、セルに有効な電子メールアドレス(TRUE)またはそうでない(FALSE)が含まれているかどうかを検証するユーザー定義関数を書き込むことをお勧めします。

あなたはこのコードを使用して起動することができます:私はこのtutorialから取った

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 

。リンクを見ると、そのリンクの使い方の説明があります。

+0

コードのおかげで、あなたのコードが電子メールを検証できるように見えますが、電子メール列に無効な電子メールが含まれていると行を削除しようとしています。 ..しかし、実行するために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; 
     } 
    } 

    ?> 
関連する問題