【发布时间】:2018-01-16 06:47:58
【问题描述】:
我正在尝试在 VBA 中使用 Excel 中的高级过滤器并将过滤后的数据复制到另一个工作簿。代码正在运行,但我以某种方式选择的目的地没有副本。我得到一张空白纸,我需要在其中查看结果。我检查过,当我手动过滤时,它会在原始位置显示正确的行。 ListsWS 是标准所在的 WS,OverWS 是存储数据的位置。我想将过滤后的数据复制到 tmpFile 到工作表 1,这是我的代码:
Public myExtension As String
Public FullPath As String
Public VisualWB As Workbook
Public tmpFile As Workbook
Public VisualWS As Worksheet
Public LR As Long
Public lastcol As Integer
Public MonCol As Integer
Public Table As Range
Public SigilDes As Integer
Public LR_Over As Long
Sub Export_File()
Set tmpFile = Application.Workbooks.Add
With tmpFile
.Worksheets.Add After:=Worksheets(Worksheets.Count)
.Worksheets(1).Name = "over"
.Worksheets(2).Name = "double"
End With
End Sub
.
.
.
'here is some not relevant code
Sub Analyze_1()
'copy monthly and hourly employees with over 42 to new workbook with advanced filter
With OverWS
LR_Over = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("A1", .Cells(LR_Over, lastcol + 2)).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=ListsWS.Range("G1:H3"), CopyToRange:=tmpFile.Worksheets(1).Cells(1, 1), Unique:=False
.Visible = False
End With
End Sub
【问题讨论】:
-
尝试将
Action:=xlFilterinPlace更改为Action:=xlFilterCopy -
@DarrellH 它有效,将其作为答案发布,我会给你分数。谢谢!