我有以下自动生成的代码,以在选定的列范围(E)中查找0 s,将其替换为空白,然后在该列中搜索空白,然后按行删除记录。
Cells.Replace What:="0", Replacement:="", LookAt:=xlWhole, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Columns("E:E").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
我在可能包含0或不包含0的不同范围上运行此命令。问题是,如果没有删除,则整个选定的E列都将被删除。 当我手动执行此操作时,我收到一条错误消息,提示“未找到任何单元”。当我运行宏时,我不明白这一点。我稍后会在宏中关闭警报,但在运行此块之前不会关闭警报。
我可以获取有关如何处理此错误的建议吗?如果所选范围没有零,请忽略下一行代码或其他内容?
谢谢。!
答案 0 :(得分:1)
随意的一半:
On Error Resume Next
'your one line code goes here'
On Error Goto 0
'the rest of your code goes here
使用完整的代码段使其正常运行,并且尽量不要使用select。
Dim WorkingRange As Range
Set WorkingRange = ThisWorkbook.Worksheets("Sheet1").Columns("E:E")
On Error Resume Next
WorkingRange.Replace What:="0", Replacement:="", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
WorkingRange.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0