我一直在使用AdvancedFilter查看工作表,然后将符合条件的行复制并粘贴到另一个工作表中。 (AdvancedFilter成功运行)。
我现在想知道是否可以在每个AdvancedFilter正面识别期间复制其他行。
例如,每次AdvancedFilter找到满足预定义条件的值时,它是否可以复制该行下面的12行并将其带到另一个工作表中?
这是我成功的AdvancedFilter代码:
Sheet4.Range("A1:X10000").AdvancedFilter , CriteriaRange:=Sheet5.Range("B4:B5"), CopyToRange:=Sheet5.Range("A10:X10"), Unique:=False
另一种方法可能是使用for和if循环,我尝试过,但我不断收到1004错误或9错误。
有什么建议吗?
这是我的循环代码:
Sheet4.Select
Dim r As Long,endRow As Long,PasteRowIndex As Long
endRow = 100
PasteRowIndex = 11
For r = 2 To endRow
If Cells(r, Columns("A").Column).Value = "Test" Then
Rows(r).Select
Selection.Copy
Sheets("CompanyFilter").Select
Rows(PasteRowIndex).Select
ActiveSheet.Paste
PasteRowIndex = PasteRowIndex + 1
Sheet4.Select
End If
Next r
答案 0 :(得分:0)
我认为这应该适合你 -
Sub test()
Dim wsOrig As Worksheet
Set wsOrig = ActiveSheet
Dim wsDest As Worksheet
Set wsDest = Sheets("CompanyFilter")
Dim r As Long, endRow As Long, PasteRowIndex As Long
endRow = 100
PasteRowIndex = 11
For r = 2 To endRow
If Cells(r, "A").Value = "Test" Then
For i = r To r + 11
wsDest.Range("A" & PasteRowIndex).EntireRow = wsOrig.Range("A" & i).EntireRow
PasteRowIndex = PasteRowIndex + 1
Next
r = r + 11
End If
Next
End Sub