我想选择显示为过滤器结果的行,然后将其粘贴到其他excel工作表中。
我试图记录宏,但是问题是所选行始终是相同的(它们没有从过滤器显示的内容中更新)。
在VBA代码下面:
Sub Macro6()
'
' Macro6 Macro
'
'
Range("B2").Select
Selection.Copy
Sheets("Foglio 1").Select
ActiveSheet.Range("$A$1:$AB$31501").AutoFilter Field:=5, Criteria1:= _
"IMMACOLATA"
Range("F25190:J25194").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Foglio2").Select
Range("A6").Select
ActiveSheet.Paste
End Sub
我该如何修复代码?
谢谢
答案 0 :(得分:1)
您不能依赖静态范围,请尝试以下代码:
Sub copyFilterData()
Dim ws As Worksheet
Dim ws1 As Worksheet
Set ws = ThisWorkbook.Sheets("Foglio 1")
Set ws1 = ThisWorkbook.Sheets("Foglio2")
ws.Range("$A$1:$AB$31501").AutoFilter Field:=5, Criteria1:= _
"IMMACOLATA"
ws.Range("A1:BF9999").SpecialCells(xlCellTypeVisible).Copy
ws1.Cells(1, 1).PasteSpecial
end sub