【问题标题】:Advanced Filter Data NOT Getting Copied to Range高级过滤器数据未复制到范围
【发布时间】: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 它有效,将其作为答案发布,我会给你分数。谢谢!

标签: vba excel


【解决方案1】:

Action:=xlFilterinPlace 更改为Action:=xlFilterCopy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    相关资源
    最近更新 更多