50000行を超えるExcelシートを512回フィルタリングする必要があります。現在、次のコードを使用しています。
Do While Not IsEmpty(ActiveCell.value)
Worksheets("Sheet1").Activate
filtro = ActiveCell.value
Sheets("Sheet2").Select
Range("D1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$I$" & lastRow("D")).AutoFilter Field:=4, Criteria1:=filtro
Range("A1").Select
Do While Not IsEmpty(ActiveCell.value)
Do
ActiveCell.offset(1, 0).Select
oProgress.Increase 1
Loop While ActiveCell.EntireRow.Hidden = True
Call functio ' this function do something with the actual row
Loop
Loop
問題は、50000行X 512回の分析に非常に時間がかかることです!、行をフィルタリングして一時シートにコピーし、そこで値を確認する方がよいのではないかと考えていました。
Active行は関数readValuesによって処理されます