Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1692to1696
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

Export einer multidimensionalen Matrix zu .xls

Export einer multidimensionalen Matrix zu .xls
12.05.2019 17:38:36
Sebastian
Hey Leute
Ich bin ein Beginner in VBA in Excel, daher bin ich leider relativ schnell an die Grenzen meines Wissen gekommen.
Ein bisschen Hintergrundwissen:
Ich benutze einen Laser um Geschwindigkeitsfelder in einem Rohr zumessen. Ich benutze Excel um mir die Positionen ausrechnen zu lassen, wo genau der Laser hinfahren muss.
Es gibt 3 Achsen (X Y and Z). Also 3 Spalten in Ecxel dann.
Das ganze Ding ist limitiert auf 100 Messpositionen... Glaube auch nicht das, dass jemand machen wird :D
Die Software vom Laser hat die Option über "Import Mesh" eine .xls Datei zu importieren, allerdings dürfen nur die ersten 3 Spalten benutzt werden... keine Ahnung warum will die Software einfach so :)
Also muss in der neu Erstellten Datei die Spalte A die X Koordinate sein, B = Y und C = Z.
Hierbei ist es nicht wichtig die spalten umzubennen die Software checkt das auch so.
Die exportierten Datein (in der Exceldatei wo es exportiert werden soll) befinden sich in Spalte 9 - 11 angefangen bei Zeile 2.
z.B. dieses Format (3x3)
1 2 3
4 5 6
7 8 9
Ich habe es so gemacht, dass als erstes die Länge des Array eingelesen wird(da es nicht immer 3X3 ist sondern auch mal 40x3 oder so. und anschließend werden die Daten in das Array eingelesen. Das Fkt gut... sieht im Quellcode nicht hübsch aus aber fkt!
Dann erstelle ich ein neues Dokument mit dem namen Export.xls.
öffne es
und exportiere das Array da rein.
Soweit so gut.
Mein Problem ist, dass der Output in der neuen Datei keine 3x3 Matrix ist sonder er alles unter einandner schreibt... ungefähr so:
1
2
3
4
5
6
7
8
9
Leider weiß ich nicht was ich meiner Shceife hinzufügen kann um das Problem zulösen:/
Ich habe schon in andere Foren geschaut aber nicht wirklich was dazu gefunden.
Da ich ein Anfänger bin in VBA würde ich mich freuen wenn der Code möglichst einfach gehalten wird, dabei ist es egal ob er dadurch länger ist als notwendig.
Achso und ich habe das über ein Button getriggert wenn ich darauf klicke entsteht die neue Export.xls datei.
Hier ist der Code:
Sub InformationenExportieren()
'Variablen definieren
Dim Zieldatei As String 'Speicherort der Text Datei
Dim p As Integer
Dim i As Integer, j As Integer 'Schleifenvariable
Dim size
Dim A()
'einzählen welche Array größe
For p = 2 To 100
If Cells(p, 9).Value = "" Then
Exit For
Else
size = size + 1
End If
Next
'einlesen des Array
ReDim A(size - 1, 2)
For i = 0 To size - 1
For j = 0 To 2
A(i, j) = Cells(i + 2, j + 9).Value
Next j
Next i
'Fehlermarke einfügen
On Error GoTo FehlerMarke
'Tabellenblattaktivieren
ThisWorkbook.Worksheets("waagerechtes Rohr").Activate
'ZielDatei erstellen
Zieldatei = ThisWorkbook.Path & "\Export.xls"
'ZielDatei öffnen
Open Zieldatei For Output As #1
'Information in Zieldatei einfügen

For j = 0 To 2
For i = 0 To size - 1
Print #1, A(i, j)  'HIER IST DER FEHLER :(
Next i
Next j

'Zieldatei schließen
Close #1
Exit Sub
FehlerMarke:
MsgBox Err.Description
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Export einer multidimensionalen Matrix zu .xls
12.05.2019 18:02:06
Nepumuk
Hallo Sebastian,
du kannst in eine Excelmappe nicht per Print schreiben. Das funktioniert nur bei Textdateien.
Warum nicht einfach Copy&Paste ? Das geht auch per Makro.
Gruß
Nepumuk
AW: Export einer multidimensionalen Matrix zu .xls
12.05.2019 18:04:44
Daniel
HI
falscher Ansatz.
auf diese weise erzeugt man eine Text-Datei (CSV, TXT oder ähnliches), aber kein Excel-file (xls)
wenn du zum Importieren wirklich ein Excelfile brauchst, dann kannst du einfach eine neue Exceldatei erstellen, die drei Spalten da hinein kopieren und und dann das ganze mit Speichern unter als .xls-Datei Speichern.
mach das erstmal von Hand, wenn das funktioniert und eine einlesbare Datei ergibt, dann kannst du das ja in ein Makro umsetzen, das sollte dann auch wesentlich einfacher und kürzer sein als dein Code.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige