文字列のすべての一意の値を配列に保存するために、次のコードを使用して、長さを数えて一意の値を取得します配列の私はこのコードを実行するとVBA - 分割された文字列を使用せずに列から一意の値を取得
Dim tmp As String
Dim prNumbers() As String
Dim arrLen As Integer
Dim lastRow As Integer
Dim txt As String
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Dim rngPR As Range
Set rngPR = Range("B2:B" & lastRow)
If Not rngPR Is Nothing Then
For Each cell In rngPR
If (cell <> "") And (InStr(tmp, cell) = 0) Then
tmp = tmp & cell & "|"
End If
Next cell
End If
If Len(tmp) > 0 Then tmp = Left(tmp, Len(tmp) - 1)
prNumbers = Split(tmp, "|")
'Find the array length
arrLen = UBound(prNumbers) + 1
しかし、arrLenは列内の一意のエントリの実際の量よりも少ない数である(私は一意のエントリのためのマニュアルデータチェックを行うことで、これを知っている。)列のデータがありません"|"文字、数字のみ。
何が問題なのですか?また、一意のエントリの量を配列に取得し、その長さを決定する別の方法がありますか?
http://www.get-digital-help.com/2010/10/22/excel-udf-count-unique-distinct-values-in-a-largeを-dataset/ – Slai