Excel使用VBA进行高级过滤

时间:2015-12-31 10:28:38

标签: excel-vba vba excel

基本上每周我都会得到一个包含资源列表的excel,它有相同的标题。

Excel resource list

我们大多数人都使用这个excel,并根据以下标准筛选出excel并将结果复制到另一张表中。

Filter Criteria

我正在开发一个工具,要求用户打开特定的Excel,然后根据过滤条件显示下面的结果。下面是我自己编写的代码。

Public currentWB As Workbook
Public dataWB As Workbook
Sub FilterData()

    Dim strFileToOpen As String

    strFileToOpen = Application.GetOpenFilename _
    (Title:="Please choose a file to open", _
    FileFilter:="Excel Files *.xls* (*.xls*),")

    If strFileToOpen = Null Then
        MsgBox "No file selected.", vbExclamation, "Sorry!"
        Exit Sub
    Else
        Set currentWB = ActiveWorkbook

        Sheets("Filter").Select
        Range("A14").Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Clear

        Workbooks.Open Filename:=strFileToOpen, UpdateLinks:=False

        Set dataWB = ActiveWorkbook

            dataWB.Sheets(2).Range("A2:EA15000").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
            currentWB.Sheets("Master").Range("A1:F2"), CopyToRange:=currentWB.Sheets("Filter").Range("A14"), Unique:=True
        Columns.AutoFit
        dataWB.Close False
        Range("A14").Select
    End If

End Sub

过滤条件只能有特定的输入,因此我创建了下拉列表,其值来自另一张名为" master"的表格。

我的代码有效,但它没有给我正确的数据。如何解决?

0 个答案:

没有答案