我有一张“数据”表。有了这张表,我正在查看K列。如果它是红色的,那么我将提取完整的行并将它们复制到另一张“延迟”表中。使用单元格值将数据从一张纸复制到另一张
我遵循以下代码。代码没有任何错误,但是,它只是复制4行红色,而我有12行。
任何人都可以帮助我找到我错在哪里,我需要什么变化?
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
使用'CountA'的基本原理是什么? K列保证是非空的,直到列中最后使用的单元格为止? – YowE3K
@ YowE3K不,不保证 – Jenny
那么你想用'CountA'实现什么? 'CountA'计算K列中有多少非空单元,然后用它来生成''K5:K“&a'和'”A“&nextrow + 1',即某种范围。为什么数字或非空单元格确定您将要处理的最后一行? – YowE3K