现在我正在使用下面的宏来替换我的大数据中的值。但问题是,替换或替换值随每个数据集而变化,如果没有找到需要的值,则宏会给出错误。任何人都可以帮助我,我如何在 Cells.replace 中使用 IF 条件。例如,找到 IF D ,然后运行此代码块,否则跳转到下一个值。
Sub ReplaceAll()
Application.ScreenUpdating = False
Sheets("Data").Select
Range("A1").Select
Cells.replace what:="D", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Cells.replace what:="F", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
我不明白为什么会出现错误,但您可以跳过所有错误。
Sub ReplaceAll()
Application.ScreenUpdating = False
On Error Resume Next 'Skip errors
Sheets("Data").Select
With Range("A1")
.Cells.replace what:="D", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
.Cells.replace what:="F", Replacement:="", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End With
On Error Goto 0 'Errors will be handled again
Application.ScreenUpdating = True
End Sub
但更好的解决方案是处理您的错误 有关this link
的信息,请参阅Error handling in VBA此外,您应该尽量避免使用Select
,因为它会大大减慢您的宏。