2D Array auslesen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von syntax.

    2D Array auslesen

    Hallo Zusammen

    Ich bekomme immer die Fehlermeldung, dass es außerhalb vom Bereich ist.. aber der Fehler ist sicher wo anders, denn ich gebe zBsp: 0,0 als Index und das ist defintiv nicht ausserhalb vom Bereich:

    VB.NET-Quellcode

    1. Dim usedRangeAs2DArray As Object(,) = usedRange.Value2


    Beim Debuggen hat er folgenden Inhalt:
    (0,0) "BlaBla"
    (0,1)
    (0,2)
    (0,3)
    (1,0)
    (1,1)
    etc...

    MsgBox(usedRangeAs2DArray(0, 0)) = Fehlermeldung: "Der Index war außerhalb des Arraybereichs." WTF?!


    Verschoben nach Sonstige Problemstellungen
    -Artentus

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Artentus“ ()

    @syntax Außerdem würde ich dieses Array als String deklarieren.
    Ist der Haltepunkt auf der MessageBox-Zeile?
    Poste bitte mal den relevanten Code.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank für die Antworten. Das Array ist nicht leer. Es ist von einem Excel

    VB.NET-Quellcode

    1. Dim application = New Excel.Application()
    2. Dim workbook As Excel.Workbook = application.Workbooks.Open(myFile)
    3. Dim worksheet As Excel.Worksheet = workbook.Sheets(1)
    4. Dim usedRange = worksheet.UsedRange
    5. Dim usedRangeAs2DArray As Object(,) = usedRange.Value2
    6. Dim bound0 As Integer = usedRangeAs2DArray.GetUpperBound(0)
    7. Dim bound1 As Integer = usedRangeAs2DArray.GetUpperBound(1)


    Das Problem ist, dass ich es "nur" als Object(,) deklarieren kann. Ich muss es von einem System.Object in ein System.Array umwandeln. Das "Array" ist 112x4 gross... und hat demzufolge 448 Einträge.

    Das Objekt des Typs "System.Object[,]" kann nicht in Typ "System.String[,]" umgewandelt werden.

    Auch wenn ich

    VB.NET-Quellcode

    1. Dim usedRangeAs2DArray As Array = usedRange.Value2
    mache, bleibt das Array als Objekt und nicht als String.

    ErfinderDesRades schrieb:

    zumindest früher waren Excel-Ranges nicht 0 - basiert, sondern 1-basiert.

    probier alsomal MsgBox(usedRangeAs2DArray(1,1))


    Habe es gerade unabhängig von deinem Post probiert.. aber mit CStr.. funktioniert perfekt! Hmm im Debug steht zwar 0,0 aber jop, mit der 1 funktioniert es halbwegs.. :) Muss man bei dem Excel sonst noch was beachten? Ich kriege den Array nicht in eine Listview.. gibt es da eine elegante Lösung?

    Danke <3