Array - Leerstellen durch 0 ersetzen
15.05.2015 20:08:55
Peter
Guten Abend
Mit nachstehendem
Sub wandle ich Zahlen aus einem Progamm in ungewohnten Format in ein gewünschtes Format um.
Die Zahlen werden aus Range("psBetrag") übernommen. Nun kommt es vor, dass ab und zu eine der _
Zellen von psBetrag leer ist, was dann Probleme gibt.
Wie kann ich nach dem Abfüllen der Variable myArray die Leerstellen durch eine NULL ersetzen?
Gruss, Peter
Sub ArrayUmwandeln()
With WorksheetFunction
If .Count(Range("psBetrag")) = .CountA(Range("psBetrag")) Then GoTo Ende 'wenn gleichviel _
Zahlen wie
'Zellen, dann Umwandlung _
nicht nötig
ThisWorkbook.Activate
'Texte, die wie Zahlen aussehen z.B. 1.111,19 werden in normale Zahlen umgewandelt und
'anschliessend formatiert - NULL-Werte werden unterdrückt
'Beispielformel =WENN(ISTZAHL(A7);A7;1*WECHSELN(WECHSELN(A7;".";"");",";"."))
Dim myArray, lngI As Long
Dim AWS As Object
Set AWS = Application.WorksheetFunction
myArray = Range("psBETRAG")
For lngI = 1 To UBound(myArray)
'Debug.Print lngI
If AWS.IsNumber(myArray(lngI, 1)) Then
' 'Zahl bleibt unverändert
Else
' 'entweder mit Funktion Replace
myArray(lngI, 1) = 1 * Replace(Replace(myArray(lngI, 1), ".", ""), ",", ".")
' 'oder mit WorksheetFunction.Substitute
' 'myArray(lngI, 1) = 1 * AWS.Substitute(AWS.Substitute(myArray(lngI, 1), ".", ""), "," _
, ".")
End If
Next
Range("psBETRAG") = myArray
Ende:
End With
End Sub