Problem mit Importmakro

01/12/2010 - 18:54 von Peter Lederer | Report spam
Hallo zusammen,

ich habe folgendes Makro unter Excel 2002 geschrieben, mit dem ich aus
einer txt-Datei Werte in ein Excelsheet importiere:

'Textdatei auslesen
Set FSO = CreateObject("Scripting.FilesystemObject")
Set Datei FSO.OpentextFile("C:\users\Lederer\Desktop\Privat\EasyWeather.txt")
Str_String = Datei.readall
Datei.Close

Str_String = Replace(Str_String, ".", ",") 'Punkt durch Komma ersetzen
Arr = Split(Str_String, vbCrLf) 'Nach Datensàtzen splitten
ReDim vnt_Ausgabe(UBound(Arr), 25) 'Array auf 25 Spalten festlegen
For L = 0 To UBound(Arr)
Tmp = Split(Arr(L), vbTab) 'Jeden Datensatz nach Werten splitten
For I = 0 To UBound(Tmp)
vnt_Ausgabe(L, I) = Tmp(I) 'Jeden Wert in das Array vnt_Ausgabe
umschaufeln
Next
Next

'Ausgeben. Anpassen.
lRow = Range("A" & Rows.Count).End(xlUp).Row

Sheets("Uebersicht").Range("A" & lRow + 1 & "").Resize(UBound(vnt_Ausgabe)
+ 1, UBound(vnt_Ausgabe, 2)) = vnt_Ausgabe

Die einzelnen Spalten sind in dem Sheet durchgàngig bis nach unten als Zahl
mit einer Nachkommastelle formatiert. Das alles klappt unter Excel 2002
auch.

Öffne ich die Datei in Excel 2010 (in der Titelleise wird neben dem
Dateinamen dann [Kompatibilitàtsmodus] und führe den Import aus, dann
werden die Werte der meisten (komischerweise nicht aller) Spalten mit so
einem kleinen grünen Dreieck in der linken oberen Zellecke angezeigt mit
dem Hinweis "Die Zahl in dieser Zelle ist als Text formatiert oder es ist
ein Apostroph vorangestellt". Die Zellen waren vor dem Import sicher als
Zahl formatiert und, jetzt wird es eigenartig, sind, wenn ich es über
rechte Maus / Zellen formatieren... überprüfe, immer noch als Zahl
formatiert. Die Zahlen stehen aber linksbündig, also so, als seien sie als
Text formatiert. Ein Apostroph ist auch nicht vorangestellt.

Wer kann mir dieses eigenartige Verhalten erklàren oder, besser noch, eine
Lösung nennen, wie ich alle Zahlen als Zahl formatiert importieren kann?

Danke schon einmal für Hilfe.

Grüße
Peter
 

Lesen sie die antworten

#1 Andreas Killer
01/12/2010 - 19:22 | Warnen spam
Am 01.12.2010 18:54, schrieb Peter Lederer:

Die Zahlen stehen aber linksbündig, also so, als seien sie als
Text formatiert. Ein Apostroph ist auch nicht vorangestellt.



Aber dennoch hast Du einen Text in die Zelle geschrieben, was unter div. Umstànden passieren kann, z.B.:

Sub Test()
Range("A1").Resize(1, 3) = Array("1", "2" & Chr(13), "3")
End Sub

Probier mal beim "umschaufeln" sowas wie
vnt_Ausgabe(L, I) = CDbl(Tmp(I))
lass aber vorher das "," durch "." ersetzen weg. CDbl übersetzt "1,23" zu 1,23 jedoch "1.23" zu 123

Weil der . der Tausender-Trenner in deutsch ist.

Andreas.

Ähnliche fragen