0
我有一個 「工作表Sheet」 看起來像這樣:VBA - 自動過濾增加片尺寸基本上
我exemplatory數據具有73行。現在,我想根據某些列過濾該數據集,並將過濾的數據集複製到另一個工作表「Sheet2」。使用此SO question代碼(有一些調整),我想出了下面的代碼:
Option Explicit
'Filter input sheet (Sheet1) and copy filtered sheet to new sheet
Sub FilterAndCopySheet1()
'https://stackoverflow.com/questions/13934821/vba-for-filtering-columns
Dim LastRow As Long
Sheets("Sheet2").UsedRange.Offset(0).ClearContents
With Worksheets("Sheet1")
.AutoFilterMode = False
With Worksheets("Sheet1").Range("A1").CurrentRegion
.AutoFilter
'Array filter from NameList
.AutoFilter field:=2, Criteria1:="USD", Operator:=xlFilterValues
.AutoFilter field:=4, Criteria1:="OCR", Operator:=xlFilterValues
.AutoFilter field:=5, Criteria1:="Europe", Operator:=xlFilterValues
.AutoFilter field:=7, Criteria1:="Finance", Operator:=xlFilterValues
LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
.Range("A1:A" & LastRow).SpecialCells(xlCellTypeVisible).EntireRow.Copy _
Destination:=Sheets("Sheet2").Range("A1")
End With
.AutoFilterMode = False
End With
End Sub
代碼工作就好了。唯一的問題是文件大小從大約25Kb增加到25MB。當然,這會降低一切。
所以我的問題是:爲什麼這個代碼導致這樣的增加?我的代碼效率不高嗎?或者它是自動過濾方法的固有問題?如果是這樣,替代方案會是什麼?