Hallo Chris,
verwende anstelle der CStr-Funktion die Str-Funktion. Die führende Leerstelle am Anfang bei nichtnegativen Zahlen vermeidest du mit der Trim-Funktion, also:
...
ZeilenInhalt = Trim(Str(Worksheets("Wertetabelle_Stützstellen").Cells(i, 1).Value))
ZeilenInhalt = Trim(ZeilenInhalt & " " & Str(Worksheets("Wertetabelle_Stützstellen").Cells(i, 2).Value))
...
Bei Excel 2000 funktioniert das. Wenn es bei deiner Excel-Version nicht klappt, bleibt z.B. die Möglichkeit, mit der InStr-Funktion das Komma zu suchen und durch einen Punkt zu ersetzen:
...
ZeilenInhalt = Trim(Str(Worksheets("Wertetabelle_Stützstellen").Cells(i, 1).Value))
a=InStr(ZeilenInhalt,",")
if a<>0 then ZeilenInhalt=Left(ZeilenInhalt,a-1)+"."+mid(ZeilenInhalt,a+1)
ZeilenInhalt2 = Trim(Str(Worksheets("Wertetabelle_Stützstellen").Cells(i, 2).Value))
a=InStr(ZeilenInhalt2,",")
if a<>0 then ZeilenInhalt2=Left(ZeilenInhalt2,a-1)+"."+mid(ZeilenInhalt2,a+1)
ZeilenInhalt=ZeilenInhalt+ZeilenInhalt2
...
Viel Erfolg.
Holger
Chris schrieb am 11.12.2007 16:03:36:
Hallo, ich habe folgendes VBA-Modul geschrieben, das mit einem Command-Button gestartet wird:
Es werden die Werte aus einer Exeltabelle (Zellen A und B) ausgelsen und in eine Textadatei mit Namen Messung.txt gespeichert.
Mein Problem besteht nun darin, dass die Werte, die z.B. 7,3 lauten in der Textdatei als 7.1 gespeichert werden müssten, d.h. sämtliche Kommas müssten durch einen Punkt ersetzt werden. Kann mir jemand dabei helfen? Wäre echt super!
Public Function MessungSpeichern(FileSavePath As Variant) As Variant
Dim ZeilenInhalt As String
Dim i, MZAnz As Long
MZAnz = MaxZAnzahl("Wertetabelle_Stützstellen") - 1
Open FileSavePath For Output As #1 'Datei im Schreibzugriff öffnen
For i = 2 To MZAnz
ZeilenInhalt = ""
ZeilenInhalt = CStr(Worksheets("Wertetabelle_Stützstellen").Cells(i, 1).Value)
ZeilenInhalt = ZeilenInhalt & " " & CStr(Worksheets("Wertetabelle_Stützstellen").Cells(i, 2).Value)
Print #1, ZeilenInhalt 'Text in Datei schreiben
Next i
Close #1 'Datei schließen
End Function
'Maximale Zeilenanzahl der Messwerte ermitteln
Public Function MaxZAnzahl(BlattName As String) As Integer
MaxZAnzahl = 1
Do While (Worksheets(BlattName).Cells(MaxZAnzahl, 1) <> "")
MaxZAnzahl = MaxZAnzahl + 1
Loop
End Function
Vielen Dank schon einmal von Chris
|