ich hoffe Ihr könnt mir ein weiteres Mal helfen.Ich habe ein VBA-Makro, dass Messwerte aus mehreren csv liest, diese in einem Array sammelt und dann auf einem Tabellenblatt ausgibt.
Nun möchte ich parallel, dass dieses Array, was bei jedem durchlaufen der Schleife entsteht als Public-Array gespeichert wird.
Weil die Anzahl der csv Dateien sehr unterschiedlich ist, wäre es schön, wenn jeweils ein Array mit neuem Namen entstehen würde, z.B. array1, array2,.. u.s.w.
Das ist mir leider nicht gelungen, weil (imho) Arrays in VBA sehr statisch sind (vielleicht auch nicht und ich weiß nur zu wenig;) )
Weitere Idee wäre ein Public Array zu machen, dass die Daten des Array, welches bei jedem Durchlauf entsteht nebeneinander schreibt. Allerdings befürchte ich Dimensionsprobleme: Zum einen sind die Arrays unterschiedlich lang, zum anderen weiß ich nicht wie groß Arrays werden dürfen. Zum Anderen möchte ich die entstehenden Public-Arrays in anderen Subs benutzen und die Übersicht geht im QC verloren.
Hier mein Sub:
Sub Import_testdata_v1()
Dim Arr
Dim Datei
Dim FSO
Dim Tmp As Variant
Dim vnt_Ausgabe As Variant
Dim path_data As Variant
Dim i, k, l, w As Integer
Dim Str_String As String
Dim z_max
Dim Dat_Strlin As Variant
path_wb = ThisWorkbook.Path
path_data = Dir("C:\Users\test*.csv")
'MsgBox path_wb
Do While path_data ""
i = i + 1
k = 1
For i = 1 To anzStrlin
Set FSO = CreateObject("Scripting.FilesystemObject")
path_i = path_wb & "\test_ & i & ".csv"
' MsgBox path_i
Set Datei = FSO.Opentextfile(path_i) 'Anpassen
Str_String = Datei.readall
Datei.Close
intFile = FreeFile
Arr = Split(Str_String, vbCrLf) 'Nach Datensätzen splitten
ReDim Dat_Ausgabe(UBound(Arr), 5)
For l = 0 To UBound(Arr)
Tmp = Split(Arr(l), ",") 'Datensatz nach Werten splittenn
For w = 0 To UBound(Tmp)
Tmp(w) = Replace(Tmp(w), """", "")
Dat_Ausgabe(l, w) = Tmp(w) 'Werte in Dat_Ausgabe
Next
Next
'Ausgeben
'In Tabelle
Sheets("Input_test").Cells(3, k).Resize(UBound(Dat_Ausgabe) + 1, UBound(Dat_Ausgabe, 2)) _
= Dat_Ausgabe
k = k + 6
Next
path_data = Dir
Loop
End Sub
Entschuldigt den langen und hoffentlich nicht zu umständlichen post. Weiß jemand weiter oder hat Anregungen?
Beste Grüße
Kapitän