第一篇文章在這裏,所以我希望我很清楚。返回獨特的值,避免循環未過濾的範圍
我在工作表上有一個表,我正在使用。我已經將listObject傳遞給了一個類,它可以從中返回各種數據。我想通過篩選指定的列標題來檢索唯一列表。
我的問題是這樣的:
我可以返回一個包含所有行,一次過濾的範圍,而不需要通過整個手動循環,未經過濾的範圍是多少?
我目前的代碼循環遍歷(未過濾)範圍,尋找下面的唯一條目。它在我的測試工作表上花費了大量的時間,所以不要認爲它對於操作示例是可行的。
Public Function returnUniqueList(col As String) As Collection
' get unqiue lists from the table. Useful for things like LCPs or ballast types
' returns as list of strings
Dim i As Integer
Dim r As Excel.Range
Dim reqCol As Integer
Dim tempString As String
' collection of strings with the unique values
Dim retString As New Collection
reqCol = returnColId(col)
On Error GoTo errorCatch
' collect the unique values
For Each r In pLO.Range.rows
If Not InCollection(retString, r.Cells(1, reqCol)) Then
' add to the collection, including the key
If r.Cells(1, reqCol) <> "" Then
retString.Add r.Cells(1, reqCol), r.Cells(1, reqCol)
End If
End If
Next r
Set returnUniqueList = retString
Exit Function
errorCatch:
MsgBox "Error returning unique list: " + Err.Description
End Function