2016-05-13 83 views
1

這是從Partial Cell Match擴展的問題。部分單元格匹配和無視標點符號VBA

我想知道我怎麼可以進一步改善以下的編碼由約翰·科爾曼提供,如果有標點符號的名義,

名1的一個例子是「IT經理薩莉,廉」

的例子名稱2將是 「莎莉,廉」

Name1 = Sheets("Work").Cells(RowName1, ColName1) 
Name2 = Sheets("Roster").Cells(RowName2, ColName2) 

If UCase(Trim(Name1)) Like "*" & UCase(Trim(Name2)) & "*" then 
    Name2.Font.Strikethrough = True 
    End If 

回答

2

使用的功能, 「整潔」 了繩子:

Function ReplacePunct(strInput As String) As String 

chars = Array(".", ",", ";", ":") '// Change as required 

    For Each ch In chars 
     While InStr(strInput) 
      strInput = Replace(strInput, CStr(ch), vbNullString) 
     Wend 
    End If 

End Function 

然後像這樣使用它:

If UCase(Trim(ReplacePunct(Name1))) Like "*" & UCase(Trim(ReplacePunct(Name2))) & "*" then