2016-07-18 31 views
1
Sub Remove_Deregistered() 

With Worksheets("Sheet2") 
For Each cel In .Range(.Range("D2"), .Range("D2").End(xlDown)) 
    If cel.Value Like "*Deregistered*" Then 

     Worksheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1).Value = cel.Offset(, 10).Value 
     cel.Resize(1, 1).ClearContents 

     Worksheets("Sheet3").Range("B" & Rows.Count).End(xlUp).Offset(1).Value = cel.Offset(, 11).Value 
     cel.Resize(1, 1).ClearContents 

    End If 

Next 

Sheet2.Range(.Range("D2"), .Range("G2").End(xlDown).Offset(, -3)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 


End With 

End Sub 

Im Sub Handhabung oben, wenn der Bereich D2 muß nicht leere Zellen-I-Fehler in dieser Linie sind immer:Vba Excel leere Fehlerzellen

Sheet2.Range(.Range("D2"), .Range("G2").End(xlDown).Offset(, -3)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 

Wie kann ich diesen Fehler zu vermeiden?

Antwort

1

Sie könnten einige Fehlerbehandlungscode verwenden, z.B .:

BeginTry1: 
    On Error GoTo ErrHandler1 
    Worksheets("Sheet1").Range(.Range("D2"), _ 
           .Range("G2").End(xlDown).Offset(, -3)).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 

ErrHandler1: 
    Debug.Print Err.Description 
1

oder Sie können den Fehler wie dieser

On Error Resume Next 

' your code that might give error here 

If Err.Number <> 0 Then Debug.Print Err.Description ' optional to print the error in the VBA Immediate window 

On Error GoTo 0 ' optional to reset the error handling 

http://www.cpearson.com/excel/errorhandling.htm

ignorieren