Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1444to1448
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

2D Array mit Zahlen richtig einfügen

2D Array mit Zahlen richtig einfügen
26.08.2015 16:17:47
Florian
Hallo zusammen,
ich habe eine txt-Datei mit Zeit- und Temperaturangaben. Mit Hilfe des "Line Input #" Befehls lese ich die Daten in ein 2D Array ("arrDaten") ein. Am Ende möchte ich das Array mit folgendem Befehl in ein Tabellenblatt schreiben:
Sheets(Name).Cells(1, 1).Resize(n, a) = arrDaten
Dabei wird das Zahlenformat nicht richtig übernommen. Aus 12,34567 wird 1.234.567, wie auch folgendes Beispiel zeigt:
Sub test()
Dim a As String
a = "12,34567"
ThisWorkbook.Worksheets.Add.Name = "Test"
Sheets("Test").Cells(1, 1).Resize(1, 1) = a
End Sub
Wie füge ich mein 2D Array nun richtig ein, so dass die Zahlen richtig übernommen werden?
Vielen Dank für eure Hilfe!
Gruß
Florian

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2D Array mit Zahlen richtig einfügen
26.08.2015 16:54:53
Daniel
Hi
VBA und Excel reden immer Englisch miteinander.
Wenn du einen Text, der wie eine Zahl aussieht, in eine Excelzelle einträgst, versucht Excel in der Regel diesen Text in ein Zahl zu wandeln.
Trägst du den Text von Hand ein, wendet Excel bei der Zahlerkennung das Landestypische Zahlenformat an, dh hier in Deutschland mit dem Komma als Dezimalzeichen und dem Punkt als Tausender-Trennzeichen.
kommt der Text jedoch von einem Makro, dann wendet Excel für die Zahlerkennung das englische Zahlenformat an, dh mit dem Punkt als Dezimal- und dem Komma als Tausendertrennzeichen.
dh:
a = "12.34567"
Sheets("Test").Cells(1, 1).Resize(1, 1) = a

sollten die Zahlen im Text im Deutschen Format vorliegen, darfst du nicht Umwandlungsautomatik von Excel bemühen, sondern du musst den Text selber per Funktion schon in eine Zahl wandeln und als Zahl in die Zelle schreiben.
Dazu nimmt man die Umwandlungsfunktion CDBL, welche für die Zahlerkennung das Landestypische Zahlenformat verwendet:
a = "12,34567"
Sheets("Test").Cells(1, 1).Resize(1, 1) = CDbl(a)
oder du tauschst vor dem Einfügen das Komma mit dem Punkt:
a = "12,34567"
Sheets("Test").Cells(1, 1).Resize(1, 1) = Replace(a, ",", ".")

Gruß Daniel

Anzeige
AW: 2D Array mit Zahlen richtig einfügen
28.08.2015 10:31:19
Florian
Hallo Daniel,
vielen Dank für deine Antwort. Direkt funktionieren beide Befehle bei einem Array nicht. Aber ich nutze jetzt die "replace"-Funktion beim Einlesen über den "Line Input"-Befehl.
Do While Not EOF(iFile)
Line Input #iFile, strTmp
strTmp = Replace(strTmp, ",", ".")
n = n + 1
For i = 1 To a
arrDaten(n, i) = Split(strTmp, vbTab)(i - 1)
Next
Loop
Close #iFile
Nochmals vielen Dank für die Hilfe!
Gruß
Florian

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige