Hallo,
ich bin VBA-Neuling und versuche mich gerade an einer simplen Ersetzungs-Routine.
In meiner Beispiel-Tabelle ist die Spalte "D" komplett als Währung (Euro, zwei Nachkommastellen) formatiert und mit Beträgen gefüllt.
Nun möchte ich per VBA eine Routine schreiben, die die Spalte durchsucht und gefundene "." durch "," ersetzt.
Hier mein Ansatz:
<span class="Norm"><span class="Vb">Option Explicit</span>
<span class="Vb">Option Base</span> 1
<span class="Vb">Sub</span> validateCells()
Sheets(1).Activate
<span class="Vb">Dim</span> i <span class="Vb">As Integer</span>
<span class="Vb">Dim</span> d_Start, d_Stop <span class="Vb">As Long</span>
d_Start = 2
d_Stop = 1000
<span class="Vb">For</span> i = d_Start <span class="Vb">To</span> d_Stop
Sheets(1).Range("D" & i).Value = FormatCurrency(Replace(Sheets(1).Range("D2").Value, ".", ","))
<span class="Vb">Next</span> i
<span class="Vb">End Sub</span></span>
Leider werden beim Blick auf die Beträge viele Warnhinweise mit grünem Pfeil in der Ecke links oben der Zellen angegeben: "Die Zahl in dieser Zelle ist als Text formatiert oder es ist ein Apostroph vorangestellt"
Ich habe auch schon versucht, den Wert der Zellen in der Schleife zuerst in eine separate Variable vom Typ "Currency" einzulesen, aber auch das schlug fehl...
Weiß jemand, warum die Replace-Rückgabewerte trotz Umformatierung als Text gespeichert werden??
Liebe Grüße
Binary91
|