使用IF条件查找和替换

时间:2014-02-18 06:40:11

标签: excel-vba if-statement replace find vba

现在我正在使用下面的宏来替换我的大数据中的值。但问题是,替换或替换值随每个数据集而变化,如果没有找到需要的值,则宏会给出错误。任何人都可以帮助我,我如何在 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

1 个答案:

答案 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,因为它会大大减慢您的宏。