只是想知道是否有人可以帮忙? 我使用 VBA 过滤 A 列中的产品“红色”,它已成功返回 5 行。 下一步是使用 VBA 仅复制前 3 个过滤结果以及标题 (第 1、2、7 和 10 行)到另一张纸。
我在让宏(尝试偏移)选择前 3 个过滤范围时遇到困难 - 它只选择了第 1 行到第 4 行,而不是过滤范围(第 1,2 7,10 行)。
选择所有筛选的行时我没有任何问题,只有当我只想要 Top3 筛选结果时才会卡住。
有人可以给我一些指点吗? 谢谢。
示例如下: 行列A列B行
Product Team 1
Red 1000. 2
Red 2000 7
Red 3000. 10
Red 4000. 12
Red 5000. 15
Option Explicit
Sub Demo()
Dim visRng As Range, copyRng As Range, iR As Long
Dim ColCnt As Long, rRow As Range, rArea As Range
Const ROWS_COPY = 4
With ActiveSheet.Range("A1").CurrentRegion
ColCnt = .Columns.Count
.AutoFilter Field:=1, Criteria1:="Red"
Set visRng = .SpecialCells(xlCellTypeVisible)
If Not visRng Is Nothing Then
If visRng.Cells.Count / ColCnt > ROWS_COPY Then
For Each rArea In visRng.Areas
For Each rRow In rArea.Rows
If copyRng Is Nothing Then
Set copyRng = rRow
Else
Set copyRng = Application.Union(copyRng, rRow)
End If
iR = iR + 1
If iR = ROWS_COPY Then Exit For
Next
If iR = ROWS_COPY Then Exit For
Next
Else
Set copyRng = visRng
End If
Sheets.Add
copyRng.Copy Range("a1")
End If
.AutoFilter
End With
End Sub