0

データがExcelで開かれるVB6でプログラムを作成しています。何千行ものデータがあり、フィルター オプションを使用して特定のデータを表示しています。私が疑問に思っているのは、フィルターをクリックしなくても、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 プロパティをセルに追加しようとしましたが、エラーが発生します。

4

2 に答える 2

0

最後の For..Next ループの後に次の行を追加する必要があります。

For i = 1 To ListView1.ColumnHeaders.Count
    .Range(.Cells(1, i), .Cells(ListView1.ListItems.Count + 1, i)).AutoFilter
Next i 
于 2012-07-18T12:36:24.250 に答える
0

で試しAutoFilterましたUsedRangeか?

これを試して

ExcelSheet.UsedRange.AutoFilter
于 2012-07-18T12:01:47.523 に答える