Dann liefert der Replace-Teil keine Fließkommazahl, sondern enthält mindestens ein weiteres Zeichen, dass das Ergebnis zu einem String macht, der nicht in eine Zahl umgewandelt werden kann. Wenn Du nur m und . sehen kannst, ist am wahrscheinlichsten, dass es noch Leerzeichen vor oder hinter der Ausgangs-Zeichenkette gibt.
Wenn Du das Makro anwendest und es werden oben in Spalte K schon richtige Umwandlungen in Zahlen vorgenommen, dann kannst Du den Inhalt der Zelle ansehen, bei der es nicht mehr funktioniert hat. So findest Du weitere störende Zeichen. Wurde keine Zahl umgewandelt, besteht das Problem bereits in der Zelle K1.
Wenn es sich um führende oder abschließende Leerzeichen handelt, kannst Du das Problem mit einem zusätzlichen Trim() lösen:
Cells(currRow, currCol) = CDbl(Trim(Replace(Replace(.Cells(currRow, currCol), "m", ""), ".", ",")))
Handelt es sich um geschützte Leerzeichen oder Tabulatoren, musst Du die ebenfalls mit Replace() entfernen. Die ASCII Codes sind 160 für das geschützte Leerzeichen und 9 für den Tabulator. In VBA kannst Du in Replace nach CHR(160) bzw. CHT(9) als zu ersetzendem String suchen und gegen einen Leerstring "" ersetzen.
|