Dauer - Wert auslesen - Runden - Wert einfügen
19.02.2004 10:51:02
frebert
ich lese aus einer Spalte in einer Tabelle mit ca. 4000 Zeilen die einzelnen Werte aus, runde sie auf (Genauigkeit) 0,5 und schreibe sie dann wieder zurück.
Z. B. 0,5 = 0,26; 0,27; 0,28; ...; 0,72; 0,73; 0,74
Code:
For j = 5 To Selection.Count
a = Cells(j, 8)
a = Runden(2 * a, 0) / 2
Cells(j, 8).Value = a
Next
Die dazugehörige Funktion:
Function Runden(vZahl As Single, iStellen As Integer)
Runden = CVar(Format(vZahl * (10 ^ iStellen), "0") / (10 ^ iStellen))
End Function
Fukntioniert wunderbar, bis auf die Dauer des Vorgangs (beim zurückschreiben des Wertes in die Zelle [Cells(j, 8).Value = a].
Bei den 4000 Werten dauert das dann mehrere Minuten.
Was mache ich falsch??
Die Variablen habe ich eh schon so klein wie möglich gehalten (single)
Vielen Dank für eure Hilfe
Grüße
Frebert