1.1k Aufrufe
Gefragt in Tabellenkalkulation von deathfun Mitglied (177 Punkte)
Hallo,

in einer Schleife wird im "buffer" ein String gehalten welcher leicht überarbeitet gespeichert werden soll.
Beispielsweise:
23.08.2013 13:15:00;17,2243919372559
23.08.2013 13:30:00;16,2239589691162
23.08.2013 13:45:00;14,8459205627441


Einlesen:
Dim buffer
[...]
Line Input #1, buffer


Ausgabe direkt in Zelle ist OK:
ActiveSheet.Range(spalte & zeile).Value = buffer


In der Zeile steht nun zB:
23.08.2013 13:15:00;17,2243919372559


Ändere ich aber das abspeichern leicht ab, da ich nur den Wert, nicht den Zeitstempel benötige:
ActiveSheet.Range(zeile & zeile).Value = Right(buffer, Len(buffer) - 20)


Erhalte ich zwar den Wert, jedoch ist die Ausgabe ohne Komma!
172243919372559
Wie kann ich die Funktion davon überzeugen, dass ich das Komma durchaus benötige?




Gruß
Deathfun

PS: Das gesamte Programm ließt aus einem Logfile mit 500ms Messwerten und gibt 15min Werte aus.

3 Antworten

0 Punkte
Beantwortet von deathfun Mitglied (177 Punkte)
Hallo,


ich habe übrigens auch schon Split versucht, selbes Ergebnis :(

buffer enthält: 23.08.2013 13:15:00;17,2243919372559
buffer = Split(buffer, ";")
ActiveSheet.Range(zeile & zeile).Value = buffer(1)


Ausgabe: 172243919372559 (also wieder ohne Komma...



Wenn ich aber in der Excel Ansicht eine Spalte danaben
=Rechts(A1,(Länge(A1)-20))

als Formel eingebe ist alles Korrekt, die Ausgabe ist dann 17,2243919372559
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi,

gib den gesplitteten Inhalt in 2 Spalten aus und lösche am Ende die nicht benötigte Spalte (das Löschen fehlt hier natürlich):

Dim buffer
Dim lngZeile As Long
lngZeile = 15
buffer = "23.08.2013 13:15:00;17,2243919372559"
buffer = Split(buffer, ";")
Range(Cells(lngZeile, 1), Cells(lngZeile, 2)) = buffer


Bis später,
Karin
0 Punkte
Beantwortet von deathfun Mitglied (177 Punkte)
Hallo Karin,

ich habe gerade das Problem gefunden.


Es schein, dass Excel quasi beim Einfügen in die Zelle nicht genau weiß was es dort eigentlich einträgt. Ich konnte das Problem lösen, indem ich noch eine explizite Wandlung nach Dubble vor dem einfügen in deine Zelle mache.
buffer = Split(buffer, ";")
ActiveSheet.Range(spalte & zeile).Value = buffer(0) 'Zeitstempel nur Kontrolle
ActiveSheet.Range(spalte & zeile).Offset(0, 1).Value = CDbl(buffer(1)) 'Messwert


Das CDbl bzw die explizite Dubble Wandlug war also die Lösung. Danke für deine Hilfe



Gruß
Deathfun
...