Ich kann nicht herausfinden, warum diese UDF nicht konsistent Zahlen hinzufügt. Ich habe den Ausgang zu Illustrationszwecken farbig codiert. Es fügt alles genau hinzu, aber aus irgendeinem Grund möchte es nicht die 4 Zahlen hinzufügen, die gleich 64 sein sollten, aber stattdessen gibt es 46.5 aus, aber es gibt keine Kombination von irgendwelchen Zahlen, die zu 46.5 herauskommen.Warum fügt dieses UDF Nummern nicht korrekt hinzu?
Dies ist die UDF Ich verwende.
Function TEXTJOINSUM(delim As String, skipblank As Boolean, arr)
Dim d As Long
Dim c As Long
Dim arr2()
Dim t As Long, y As Long
t = -1
y = -1
If TypeName(arr) = "Range" Then
arr2 = arr.Value
Else
arr2 = arr
End If
On Error Resume Next
t = UBound(arr2, 2)
y = UBound(arr2, 1)
On Error GoTo 0
If t >= 0 And y >= 0 Then
For c = LBound(arr2, 1) To UBound(arr2, 1)
For d = LBound(arr2, 1) To UBound(arr2, 2)
If arr2(c, d) <> "" Or Not skipblank Then
TEXTJOINSUM = TEXTJOINSUM & arr2(c, d) & delim
End If
Next d
Next c
Else
For c = LBound(arr2) To UBound(arr2)
If arr2(c) <> "" Or Not skipblank Then
TEXTJOINSUM = TEXTJOINSUM & arr2(c) & delim
End If
Next c
End If
TEXTJOINSUM = Left(TEXTJOINSUM, Len(TEXTJOINSUM) - Len(delim))
'add the below loop to add each number together
Dim total As Double
Dim txtPart
For Each txtPart In Split(TEXTJOINSUM, delim)
total = total + CDbl(txtPart)
Next txtPart
TEXTJOINSUM = total
End Function
Spalten C und G auf "Nummer" gesetzt, wenn das einen Unterschied macht. – Devil07
Sehen Sie sich Ihre Daten an. Entweder ist das Datum in A14 kein echtes Datum oder es ist Zeit damit verbunden, oder B14 hat Leerzeichen oder andere nicht sichtbare Zeichen. Der Code funktioniert für mich, aber es ist eine Menge Arbeit für etwas, was Excel mit nativen Formeln tun wird. Der Fehler liegt in den Daten entweder A14 oder B14. Retype diese zwei Zellen und ich wette, es wird funktionieren. –
"Es gibt keine Kombination irgendwelcher Zahlen, die auf 46,5 kommen" - wie wäre es mit C11 + C12 + C13? – YowE3K