只在search过程中删除字符?

我有一个excel文件,就像一个常见问题与许多问答。 在第一个工作表上有一个searchfunction。 您input要search的单词,然后按Enter键。 该function然后在整个工作簿中查找这些单词。 为了能够做一个适当的search,我必须删除所有句号,逗号,感叹号和问号。

我用Replace做这个,但没有真正想到后果。 字符被永久地从文本中删除,使其看起来难以阅读和难看。

所以我的问题是,如何才能在search过程中删除这些字符? 我必须将每个文本复制到一个新的单元格,并在那里进行search,或者有另一种方法吗?

这是我删除angular色和最终searchfunction的一部分。

 Function FindWords(cellToSearch As Range, nOfWords As Integer, myWords As String) As Long Dim counter As Long Dim word, element Dim arr, wordsArr cellToSearch = Replace(cellToSearch, Chr(33), "") cellToSearch = Replace(cellToSearch, Chr(44), "") cellToSearch = Replace(cellToSearch, Chr(46), "") cellToSearch = Replace(cellToSearch, Chr(63), "") wordsArr = Split(myWords) arr = Split(cellToSearch) If UBound(arr) > 0 Then For Each word In wordsArr For Each element In arr If LCase(word) = LCase(element) Then counter = counter + 1 Next Next Else ' cell to search is empty counter = 0 End If If counter = nOfWords Then FindWords = 1 Else FindWords = 0 End If End Function 

你可以使用另一个variables:

 Function FindWords(cellToSearch As Range, nOfWords As Integer, myWords As String) As Long Dim counter As Long Dim word, element Dim arr, wordsArr Dim sFindWord as String sFindWord = cellToSearch.Value sFindWord = Replace(sFindWord , Chr(33), "") sFindWord = Replace(sFindWord , Chr(44), "") sFindWord = Replace(sFindWord , Chr(46), "") sFindWord = Replace(sFindWord , Chr(63), "") wordsArr = Split(myWords) arr = Split(sFindWord) If UBound(arr) > 0 Then For Each word In wordsArr For Each element In arr If LCase(word) = LCase(element) Then counter = counter + 1 Next Next Else ' cell to search is empty counter = 0 End If If counter = nOfWords Then FindWords = 1 Else FindWords = 0 End If End Function