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

30.000 Datensätze in Array einlesen

30.000 Datensätze in Array einlesen
09.12.2020 21:13:02
Michael
Hallo, ich will aus einer (externen) Excel-Mappe die 30.000 Zeilen mit Daten hat alle Werte in ein dynamisches Array lesen. Dauert ca. 1 Minute. Mit de Array will ich dann weiter arbeiten (auswerten, auflisten im Dialogfeld, ....)
Wie kann ich das einlesen beschleunigen?
Mein Code:
Dim xlApp4 As Excel.Application
Set xlApp4 = New Excel.Application
xlApp4.Visible = false
Dim xlWkb4 As Excel.Workbook
Set xlWkb4 = xlApp4.Workbooks.Open(mdl_main.strPfadUndNameProjektDAtenDateiXL, False, True)
Dim xlWs As Excel.Worksheet
Set xlWs = xlWkb4.Worksheets(mdl_main.strxlTab_ProjektListe)
ReDim arrProjektdaten(1)
Dim Zeilenzähler As Long, bolEndeErreicht As Boolean
Do Until bolEndeErreicht = True
Zeilenzähler = Zeilenzähler + 1 'exit DO when in SpalteB Leerzeile erreicht wird
If xlWs.Cells(Zeilenzähler, 2).Value = "" Then
bolEndeErreicht = True
Exit Do
End If
'Array dynamisch vergrößern:
If Zeilenzähler > 1 Then ReDim Preserve arrProjektdaten(1 To Zeilenzähler)
arrProjektdaten(Zeilenzähler).lngDatensatzZeile = Zeilenzähler
arrProjektdaten(Zeilenzähler).strProjektNummer = xlWs.Cells(Zeilenzähler, 2).Value
arrProjektdaten(Zeilenzähler).strAuftragsnummer = xlWs.Cells(Zeilenzähler, 4).Value
arrProjektdaten(Zeilenzähler).strTechnBearbeiter = xlWs.Cells(Zeilenzähler, 6).Value
arrProjektdaten(Zeilenzähler).strKommission = xlWs.Cells(Zeilenzähler, 9).Value
arrProjektdaten(Zeilenzähler).datSchlussrechnung = xlWs.Cells(Zeilenzähler, 14).Value
Loop

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 30.000 Datensätze in Array einlesen
09.12.2020 21:38:38
onur
Lies den kompletten Bereich (Zeile 1 bis Ende - Spalte 1 bis 14) in ein normales, zweidimensionales Array, das geht ruckzuck.
z.B.:
Dim arr
arr = Range("A1:D100")

AW: 30.000 Datensätze in Array einlesen
09.12.2020 21:47:31
Michael
Danke, hast recht.
mit arr = xlWs.Range("b1:R" & xlWs.UsedRange.Rows.Count)
ist die Einlesezeit von 59 Sekunden auf 2 Sekunden gesunken.
Jetzt muss ich die Filtermöglichkeiten bzw. Auswertungen dieses Arrays noch rausbekommen (lieber morgen dann)
Danke Dir erstmal!!
Gerne !
09.12.2020 21:48:51
onur
Anzeige

228 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige