Excel过滤器 - VBA自动化

时间:2016-12-08 12:15:15

标签: excel vba excel-vba automation

我有一个要求,我只需要选择大于零的值。它也有文字和数字。以下是示例数据

Name    Marks   Remarks
ab      90         Good
bc      0          Bad
cd     70          Average
de      0          Bad
fg    didn'tattend  Poor

我希望我的输出使用VBA就像这样,

Name    Marks
ab      90
cd      70

并且输出也在不同的工作表上。请告诉我哪一个最适合这个要求。

我需要一个VBA SUB来获取这些数据并产生上述输出。我在尝试。但它没有到达那里。

我试过的代码,

Private Sub OpenExcelFile_Click()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim Sheet As Worksheet
Dim PasteStart As Range

Set wb1 = ActiveWorkbook
Set PasteStart = [Control!A1]

Sheets("Section1").Select
    Cells.Select
    Selection.ClearContents

FileToOpen = Application.GetOpenFilename _
(Title:="Please choose the required file", _
FileFilter:="Report Files *.xls (*.xls),")

If FileToOpen = False Then
    MsgBox "No File Specified.", vbExclamation, "ERROR"
    Exit Sub
Else
    Set wb2 = Workbooks.Open(Filename:=FileToOpen)
    For Each Sheet In wb2.Sheets
        With Sheet.UsedRange
            .Copy PasteStart
            Set PasteStart = PasteStart.Offset(.Rows.Count)
        End With
    Next Sheet
End If
    wb2.Close

End Sub

1 个答案:

答案 0 :(得分:0)

一方面,有人为您编写代码很困难,另一方面,这是一个很好的新代,您可以使用内置的Excel表轻松完成。只需单击数据的其中一个单元格,转到“插入”选项卡,选择“插入表格”,然后选中“我的表格标记已标记”。然后,您将看到每个列都有一个过滤图标,使用标记列并转到数字过滤器并选择大于或等于70以获得您显示的结果。