您可以使用WorkSheetFunction.Transpose
方法將列中的數據複製到Array。它給你一個index 1 based Single Dimensional Array
。如果您有多列,則該方法爲您提供多維數組。
Dim arrayV as Variant
arrayV = WorkSheetFunction.Transpose(Sheets(1).Range("A2:A20").Value)
要找到上次使用的排在這個範圍內,使用下面的代碼,將刪除被填充到數組任何空單元格的值,
Dim LastRow as Long
LastRow = Sheets(1).Cells(Sheets(1).Rows.Count, _
Sheets(1).Range("A2:A20").Column).End(xlUp).Row
arrayV = WorkSheetFunction.Transpose(Sheets(1).Range("A2:A20").Resize(LastRow-1).Value)
接下來,以獲得獨特的價值觀,你可能會使用一個dictionary
對象,因爲它只會保存唯一的項目。
Dim dc as Object
Set dc = CreateObject("Scripting.Dictionary")
For i = Lbound(arrayV) to Ubound(arrayV)
If Not dc.Exists(arrayV(i)) Then
dc.Add arrayV(i), i
End If
Next i
'--output to Sheet or do whatever you want with this
dc.Keys() '-- gives you an array with the unique values
Set dc = Nothing