3
我有一張大量自動過濾的行(> 200,000)。我試圖通過一個列向上循環,直到找到與當前單元格不同的第一個單元格爲止。我可以循環「向下」穿過可見單元使用:快速反向循環過濾列表的方式?
For i = rng.Count To 1 Step -1
If rng.Cells(i).EntireRow.Hidden Then
'do nothing
ElseIf 'check different value
End If
Next i
但隨着大量這樣可以隱藏的列:
For Each cl In rng.SpecialCells(xlCellTypeVisible)
'check for different value
Next cl
我還可以循環「向上」使用跳過隱藏的行即使只有幾百個可見行,也需要花點時間跳過所有這些行。我嘗試過使用rng.SpecialCells(xlCellTypeVisible)
,並通過它們後退,但它似乎也通過隱藏的單元格。
- 有沒有辦法顛倒
For Each
循環的順序? - 有沒有更快的方法來做到這一點?
感謝
你可以使用第一種方法填充行號到一個數組,然後使用第二種方法反向循環數組。 –
您可以複製整個表格並刪除重複項目。然後你的工作表function.find(...)。 「因爲」比使用Excel功能還要糟糕。 – Makah
'我正在通過一個列向上循環,直到找到與當前單元格不同的第一個單元格。「我有一個問題要問你。你爲什麼想要反向循環?你想對數據做些什麼?如果是,那麼蒂姆和加里的解決方案將幫助你。但是如果你想使用行(範圍),那麼你將不得不採取不同的技術。 –