首页 > 解决方案 > 删除特殊字符

问题描述

我在这里有一个用于 excel 的 VB 代码,它删除了特殊字符。我的问题是为什么要删除一些特殊字符,例如 c 列中的一些特殊字符没有改变或被删除。

代码:

Sub Invalid()



    Dim e

    For Each e In Array("–", "€", "â", "¦", "Â", "®", "®", "—", "Ã", "ña", "±a", "¡c", "±", "'", "–", "ó", "​", "…", "®", "‹")

        If e Like "[–]" Then
            Columns("a").Replace "–", ""
            Columns("b").Replace "–", ""
            Columns("c").Replace "–", ":"
            Columns("d").Replace "–", ""
            Columns("e").Replace "–", ":"
       Else
       
        If e Like "[ó]" Then
            Columns("a").Replace "ó", ""
            Columns("b").Replace "ó", ""
            Columns("c").Replace "ó", "o"
            Columns("d").Replace "ó", ""
            Columns("e").Replace "ó", ""
       Else
       
         If e Like "[ña]" Then
            Columns("a").Replace "ña", ""
            Columns("b").Replace "ña", ""
            Columns("c").Replace "ña", ""
            Columns("d").Replace "ña", ""
            Columns("e").Replace "ña", ""
       Else
       
         If e Like "[​]" Then
            Columns("a").Replace "​", ""
            Columns("b").Replace "​", ""
            Columns("c").Replace "​", ""
            Columns("d").Replace "​", ""
            Columns("e").Replace "​", ""
       Else
       
         If e Like "[…]" Then
            Columns("a").Replace "…", ""
            Columns("b").Replace "…", ""
            Columns("c").Replace "…", ""
            Columns("d").Replace "…", ""
            Columns("e").Replace "…", ""
       Else
         If e Like "[®]" Then
            Columns("a").Replace "®", ""
            Columns("b").Replace "®", ""
            Columns("c").Replace "®", ""
            Columns("d").Replace "®", ""
            Columns("e").Replace "®", ""
      Else
      
         If e Like "[€]" Then
            Columns("a").Replace "€", ""
            Columns("b").Replace "€", ""
            Columns("c").Replace "€", ""
            Columns("d").Replace "€", ""
            Columns("e").Replace "€", ""
      Else
      
         If e Like "[â]" Then
            Columns("a").Replace "â", ""
            Columns("b").Replace "â", ""
            Columns("c").Replace "â", ""
            Columns("d").Replace "â", ""
            Columns("e").Replace "â", ""
      Else
      
         If e Like "[¦]" Then
            Columns("a").Replace "¦", ""
            Columns("b").Replace "¦", ""
            Columns("c").Replace "¦", ""
            Columns("d").Replace "¦", ""
            Columns("e").Replace "¦", ""
      Else
      
         If e Like "[Â]" Then
            Columns("a").Replace "Â", ""
            Columns("b").Replace "Â", ""
            Columns("c").Replace "Â", ""
            Columns("d").Replace "Â", ""
            Columns("e").Replace "Â", ""
      Else
      
         If e Like "[®]" Then
            Columns("a").Replace "®", ""
            Columns("b").Replace "®", ""
            Columns("c").Replace "®", ""
            Columns("d").Replace "®", ""
            Columns("e").Replace "®", ""
      Else
      
         If e Like "[®]" Then
            Columns("a").Replace "®", ""
            Columns("b").Replace "®", ""
            Columns("c").Replace "®", ""
            Columns("d").Replace "®", ""
            Columns("e").Replace "®", ""
      Else
      
         If e Like "[—]" Then
            Columns("a").Replace "—", ""
            Columns("b").Replace "—", ""
            Columns("c").Replace "—", ""
            Columns("d").Replace "—", ""
            Columns("e").Replace "—", ""
      Else
      
         If e Like "[Ã]" Then
            Columns("a").Replace "Ã", ""
            Columns("b").Replace "Ã", ""
            Columns("c").Replace "Ã", ""
            Columns("d").Replace "Ã", ""
            Columns("e").Replace "Ã", ""
      Else
      
         If e Like "[±a]" Then
            Columns("a").Replace "±a", ""
            Columns("b").Replace "±a", ""
            Columns("c").Replace "±a", ""
            Columns("d").Replace "±a", ""
            Columns("e").Replace "±a", ""
      Else
      
         If e Like "[¡c]" Then
            Columns("a").Replace "¡c", ""
            Columns("b").Replace "¡c", ""
            Columns("c").Replace "¡c", ""
            Columns("d").Replace "¡c", ""
            Columns("e").Replace "¡c", ""
      Else
      
         If e Like "[±]" Then
            Columns("a").Replace "±", ""
            Columns("b").Replace "±", ""
            Columns("c").Replace "±", ""
            Columns("d").Replace "±", ""
            Columns("e").Replace "±", ""
      Else
      
         If e Like "[']" Then
            Columns("a").Replace "'", ""
            Columns("b").Replace "'", ""
            Columns("c").Replace "'", ""
            Columns("d").Replace "'", ""
            Columns("e").Replace "'", ""
        Else
        
        If e Like "[–]" Then
            Columns("a").Replace "–", ""
            Columns("b").Replace "–", ""
            Columns("c").Replace "–", ""
            Columns("d").Replace "–", ""
            Columns("e").Replace "–", ""
        Else
        
        If e Like "[‹]" Then
            Columns("a").Replace "‹", ""
            Columns("b").Replace "‹", ""
            Columns("c").Replace "‹", ""
            Columns("d").Replace "‹", ""
            Columns("e").Replace "‹", ""

    Else
        
        If e Like "[–]" Then
            Columns("a").Replace "–", ""
            Columns("b").Replace "–", ""
            Columns("c").Replace "–", ":"
            Columns("d").Replace "–", ""
            Columns("e").Replace "–", ""
        


End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Next


End Sub

标签: excelvbaspecial-characters

解决方案


更短:

Sub Invalid()

    Dim e

    For Each e In Array("–", "€", "â", "¦", "Â", "®", "®", "—", _
                        "Ã", "ña", "±a", "¡c", "±", "'", "–", "ó", _
                        "​", "…", "®", "‹")

        Select Case e
            Case "–"
                Range("A1:B1,D1").EntireColumn.Replace e, ""
                Range("C1,E1").EntireColumn.Replace e, ":"
            Case "ó"
                Range("A1:B1,D1:E1").EntireColumn.Replace e, ""
                Range("C1").EntireColumn.Replace e, "o"
            Case "–"
                Range("A1:B1,D1:E1").EntireColumn.Replace e, ""
                Range("C1").EntireColumn.Replace e, ":"
            Case Else
                Range("A:E").Replace e, ""
        End Select
    Next e

End Sub

推荐阅读