我正在尝试模拟excel“查找和替换”功能,我对这样做有一些疑虑/担忧。下面是我正在使用的代码,并使用excel中的“记录宏”功能进行记录。
Selection.Replace What:=":Y", Replacement:="helloWorld", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
在上面的代码中,如果我用类似的东西替换helloWorld这是一个“鸡”代码因为“这是一个”鸡“”情况会失败。为了纠正它,我们应该有类似“这是一个”“鸡”“”
的东西然而,要替换的文本来自同一个Excel工作表中的单元格。如何为已经引用的文本添加额外的引号以避免任何错误。
同样适用于特殊字符,例如$%^& *!@#
请帮忙!
答案 0 :(得分:1)
如果替换文本来自另一个单元格的值,我根本不担心进行字符串转换。我倾向于将包含替换文本的单元格的.Value属性传递给Replace方法的Replacement:=参数。这样Excel将在内部处理所有引用和其他字符;你不必担心它。
这样的事情:
Sub ReplaceText()
On Error Resume Next
Err.Clear
'Let's say that the replacement text is in A1
Selection.Replace What:=":Y", Replacement:=ActiveSheet.Cells(1, 1).Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'In case it's something like an error in the replacement text cell.
'Using quotes or special characters WON'T cause an error.
If Err.Number <> 0 Then
MsgBox "Replacement failed; error " & Err.Number & vbCrLf & Err.Description
End If
On Error GoTo 0
End Sub