可以在Excel中不断启用Excel中的过滤器选项吗?

时间:2012-07-18 11:39:14

标签: excel vb6

我在VB6中创建一个程序,在Excel中打开数据。我有数千行数据,我使用过滤器选项来查看某些数据。 我想知道的是,如果打开Excel工作表而不必单击过滤器,是否可以始终打开过滤器选项?我知道单击过滤器功能没什么大不了的,但是其他人会使用它,所以每次查看一张纸时,每列的第一行总是有这个选项会很方便。我希望这是有道理的:/谢谢

这是我的代码:

Private Sub cmdReports_Click()
Dim ExcelObj As Object
Dim ExcelBook As Object
Dim ExcelSheet As Object
Dim i As Integer


Set ExcelObj = CreateObject("Excel.Application")
Set ExcelBook = ExcelObj.WorkBooks.Add
Set ExcelSheet = ExcelBook.WorkSheets(1)

With ExcelSheet
.AutoFilterMode = True
For i = 1 To ListView1.ColumnHeaders.Count
.cells(1, i) = ListView1.ColumnHeaders(i).Text
Next i
For i = 1 To ListView1.ListItems.Count
.cells(i + 1, 1) = ListView1.ListItems(i).Text
.cells(i + 1, 2) = ListView1.ListItems(i).SubItems(1)
.cells(i + 1, 3) = ListView1.ListItems(i).SubItems(2)
.cells(i + 1, 4) = ListView1.ListItems(i).SubItems(3)
Next
End With

ExcelObj.Visible = True

Set ExcelSheet = Nothing
Set ExcelBook = Nothing
Set ExcelObj = Nothing
End Sub

我尝试将.AutoFilter属性添加到单元格但是我收到错误。

2 个答案:

答案 0 :(得分:0)

您是否使用AutoFilter尝试UsedRange

试试这个

ExcelSheet.UsedRange.AutoFilter

答案 1 :(得分:0)

您需要在最后一个For..Next循环后添加此行:

For i = 1 To ListView1.ColumnHeaders.Count
    .Range(.Cells(1, i), .Cells(ListView1.ListItems.Count + 1, i)).AutoFilter
Next i