Excel-VBA: Wenn Wert nicht gefunden, in Reichweite, gehen Sie zu

Ich bin mit dem folgenden code, um eine Schleife durch Blätter 1-31 filtern jedes Blatt, indem Sie den Wert in einer Zelle("E1") in sheets("RunFilter_2") und kopieren Sie dann den gefilterten Bereich und kopiere die nächste leere Zeile in Blatt("RunFilter_2").

Den Fehler code, wenn es nicht an den Wert sheets("RunFilter_2").Range("E1") in Spalte 18 das aktive Blatt.

Also habe ich ein range-check, der prüft, ob sheets("RunFilter_2").Range("E1").Wert findet sich in Spalte Range("R:R").

Aber, wie kann ich bewegen auf die Nächste, die ich, Wenn rngFound Nichts?

Sub RunFilter2()

Rows("5:5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
Range("A1").Select

    Dim wb As Workbook
    Dim ws As Worksheet

    Set wb = ActiveWorkbook
    Set ws = wb.sheets("01")

         Dim WS_Count As Integer
         Dim I As Integer

         WS_Count = ActiveWorkbook.Worksheets.Count - 3

         For I = 1 To WS_Count

Dim LastRow As Long
LastRow = ActiveSheet.UsedRange.Rows.Count

sheets(I).Select

Columns("A:U").Select

Dim rng As Range
Dim rngFound As Range

Set rng = Range("R:R")

Set rngFound = rng.Find(sheets("RunFilter_2").Range("E1").Value)

If rngFound Is Nothing Then

'----------------------------------
' How do I code ... GO TO Next I
'----------------------------------

Else:

Selection.AutoFilter

ActiveSheet.Range("$A$1:$U" & LastRow).AutoFilter Field:=18, Criteria1:=sheets("RunFilter_2").Range("E1").Value

    Range("A1").Offset(1, 0).Select
    Rows(ActiveCell.Row).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy

sheets("RunFilter_2").Select

If Range("A4").Value = "" Then

Range("A4").Select

Else

Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select

End If

ActiveSheet.Paste
ws.Select
Application.CutCopyMode = False
Selection.AutoFilter
Range("A1").Select
sheets("RunFilter_2").Select

         Next I

End Sub
InformationsquelleAutor SMORF | 2017-03-01
Schreibe einen Kommentar