Ich habe ein Blatt "Data". Mit diesem Blatt schaue ich in die Spalte K. Wenn es rot ist, ziehe ich die komplette Zeile heraus und kopiere sie auf ein anderes Blatt "Delay".Kopieren Sie Daten von einem Blatt zu einem anderen mit dem Zellwert
Ich folge dem untenstehenden Code. Der Code hat keinen Fehler, aber es kopiert nur 4 rote Reihen, während ich 12 Reihen habe.
Könnte mir jemand helfen zu finden, wo ich falsch liege und welche Veränderungen ich brauche?
Sub delay()
Dim cell As Range
Dim nextrow As Long
Dim a As Double
Application.ScreenUpdating = False
a = Application.WorksheetFunction.CountA(Sheets("Data").Range("K:K"))
For Each cell In Sheets("Data").Range("K5:K" & a)
If cell.DisplayFormat.Interior.Color = vbRed Then
nextrow = Application.WorksheetFunction.CountA(Sheets("Delayed").Range("K:K"))
Rows(cell.Row).Copy Destination:=Sheets("Delayed").Range("A" & nextrow + 1)
End If
Next
Application.ScreenUpdating = False
End Sub
Was ist der Grund für die Verwendung von 'CountA'? Ist die Spalte K garantiert nicht leer bis zur letzten Zelle in dieser Spalte? – YowE3K
@ YowE3K nein es ist nicht garantiert – Jenny
Was willst du dann mit dem 'CountA' erreichen? "CountA" zählt, wie viele nichtleere Zellen in der Spalte K existieren, und Sie verwenden diese, um "K5: K" & a' und "A" & nextrow + 1 'zu erzeugen, d.h. eine Art von Bereich. Warum bestimmt die Anzahl oder nicht leere Zellen die letzte Zeile, die Sie verarbeiten werden? – YowE3K