Ana*_*dey 5 excel vba copy filter
我有两张床单。一个具有完整的数据,另一个基于应用于第一张纸的过滤器。
数据表Data
名称: 过滤表名称:Hoky
为简单起见,我只取了一小部分数据。我的目标是根据过滤器从数据表中复制数据。我有一个宏,它以某种方式工作,但它是硬编码的,是一个录制的宏。
我的问题是:
Sub TESTTHIS()
'
' TESTTHIS Macro
'
'FILTER
Range("F2").Select
Selection.AutoFilter
ActiveSheet.Range("$B$2:$F$12").AutoFilter Field:=5, Criteria1:="hockey"
'Data Selection and Copy
Range("C3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Hockey").Select
Range("E3").Select
ActiveSheet.Paste
Sheets("Data").Select
Range("D3").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Hockey").Select
Range("D3").Select
ActiveSheet.Paste
Sheets("Data").Select
Range("E3").Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Hockey").Select
Range("C3").Select
ActiveSheet.Paste
End Sub
Run Code Online (Sandbox Code Playgroud)
Arp*_*ini 12
最好的方法
下面的代码是复制DBExtract表中的可见数据,粘贴到duplicateRecords表中,只有过滤值。我选择的范围是我的数据可以占用的最大范围。您可以根据需要更改它。
Sub selectVisibleRange()
Dim DbExtract, DuplicateRecords As Worksheet
Set DbExtract = ThisWorkbook.Sheets("Export Worksheet")
Set DuplicateRecords = ThisWorkbook.Sheets("DuplicateRecords")
DbExtract.Range("A1:BF9999").SpecialCells(xlCellTypeVisible).Copy
DuplicateRecords.Cells(1, 1).PasteSpecial
End Sub
Run Code Online (Sandbox Code Playgroud)