none
Excel Spalte in Array schreiben, ohne durch Reihen zu iterieren RRS feed

  • Frage

  • Hallo,

    ich habe in meinem Visual Basic 2010 Projekt ein Excel Objekt geöffnet.

    Wenn ich in die entsprechende Tabelle Daten einfügen möchte, geht dies sehr schnell über

    objXlsSheet.Cells(2, 1).Resize(2500, 20).Value = Messen.DataArray

    Wenn ich nun jedoch aus einer Spalte Werte auslesen und in ein Array schreiben möchte, muss ich über jede einzelne Zeile mit einer Schleife iterieren:

    For i As Integer = 0 To 2399
    Messschrieb(i) = objXlsSheet.Cells(i).Value
    Next

    Das Code-Bsp.1 zum Daten schreiben ist sehr schnell. Das Daten Lesen, wie es im Code-Bsp.2 beschrieben ist, benötigt bei der gegebenen Datenmenge mehrere Sekunden pro Spalte. Gibt es eine Alternative, mit der ich ebenso schnell Daten aus der Excel-Tabelle lesen kann, wie ich sie im Code-Bsp.1 schreibe?

    Ich habe versucht, analog zum Code-Bsp.1 vorzugehen:

    Messschrieb(i) = objXlsSheet.Cells(1, 1).Resize(2500, 1).Value

    Leider war dies nicht von Erfolg gekrönt, da "Messschrieb" ein Array aus Double's ist, während .Cells.[...] ein Range-Object darstellt. Ich erinnere mich leider nicht mehr an die genaue Fehlermeldung...

    Könnt ihr mir helfen? Zeit ist Geld und ich würde gerne auf die resultierenden Rechenzeiten durch die vielen Schleifendurchgänge verzichten ;-)

    Vielen Dank schon mal!

    Gruß


    • Bearbeitet Ömmes Mittwoch, 21. November 2012 17:37
    • Verschoben Ionut DumaModerator Freitag, 23. November 2012 13:09 Frage nicht fur Visual Studio (aus:Visual Studio)
    Mittwoch, 21. November 2012 16:11

Antworten

Alle Antworten