部分单元格匹配并忽略标点VBA

时间:2016-05-13 15:50:17

标签: excel vba excel-vba punctuation

这是来自{{3}}的扩展问题。

我想知道如果名字中有标点符号,我如何能够进一步改进John Coleman提供的以下编码,

Name1的一个例子是“IT执行官Sally,Lim”

Name2的一个例子是“Sally,Lim”

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

1 个答案:

答案 0 :(得分: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