Ich verwende den folgenden Code, um alle eindeutigen Werte in einer Spalte mit Strings in einem Array zu speichern, und dann erhalte ich die Anzahl der eindeutigen Werte durch Zählen der Länge des Arrays.VBA - Abrufen eindeutiger Werte aus einer Spalte ohne Verwendung einer geteilten Zeichenfolge
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
Allerdings, wenn ich diesen Code ausführen, arrLen eine Nummer kleiner als die tatsächliche Menge an eindeutigen Einträge in der Spalte ist (ich weiß, dass dies durch eine manuelle Datenprüfung für eindeutige Einträge zu tun.) Die Daten in der Spalte tun enthält kein "|" Zeichen, nur Zahlen.
Was könnte das Problem sein? Und gibt es eine alternative Möglichkeit, die Anzahl eindeutiger Einträge in ein Array zu bekommen und deren Länge zu bestimmen?
http://www.get-digital-help.com/2010/10/22/excel-udf-count-unique-distinct-values-in-a-large -dataset/ – Slai