Zum Inhalt springen

VBA: Index außerhalb des gültigen Bereichs


Empfohlene Beiträge

Geschrieben

Laufzeitfehler 9:

Index außerhalb des gültigen Bereichs

Hallo Leute,

ich weiß normalerweise, was zu tun ist, wenn dieser Fehler auftritt. Meistens habe ich dann ein Array falsch dimensioniert oder versuche auf Dimensionen des Arrays zuzugreifen, die gar nicht existieren. Nur diesmal ist es anders. Eigentlich funktioniert folgende Funktion:

Function Daten_einlesen()


    Dim Zeile As Integer

    Dim datenfeld()

    Dim wert As Variant

    Dim AnzahlDatensaetze As Integer


    Zeile = 6 ' unsere Startzeile im Arbeitsblatt Telefonverhalten

    AnzahlDatensaetze = Rechnungsimport.Gib_Zeile_zurück - Zeile + 1 ' = Anzahl Datensätze minus 1

    ReDim datenfeld(AnzahlDatensaetze, 7)


    Worksheets("Telefonverhalten").Activate

    wert = Range("A" & Zeile).Value ' für die erste Bedingunsprüfung in der Do While ...-Schleife


    Do While Not wert = ""

        ' Zeile-6 weil wir das Array bei 0 starten lassen

        datenfeld(Zeile - 6, 0) = Range("A" & Zeile).Value ' Wochentag

        datenfeld(Zeile - 6, 1) = Range("B" & Zeile).Value ' Datum

        datenfeld(Zeile - 6, 2) = Range("C" & Zeile).Value ' Uhrzeit

        datenfeld(Zeile - 6, 3) = Range("D" & Zeile).Value ' Telefonnummer

        datenfeld(Zeile - 6, 4) = Range("E" & Zeile).Value ' Netzinfo

        datenfeld(Zeile - 6, 5) = Range("F" & Zeile).Value ' Gesprächsdauer

        datenfeld(Zeile - 6, 6) = Range("G" & Zeile).Value ' Gesprächsdauer gerundet

        datenfeld(Zeile - 6, 7) = Range("H" & Zeile).Value ' Einheit


        Zeile = Zeile + 1

        ' wert ist der Parameter für die Abbruchbedingung

        wert = Range("A" & Zeile).Value

    Loop


    Daten_einlesen = datenfeld 'Daten_einlesen: Array als Rückgabewert


End Function

Die Funktion gibt mir halt Daten einer Excel-Tabelle als Array zurück.

Das Komische ist, dass sie bei jedem zweiten aufruf aus einer anderen Funktion die oben genannte Fehlermeldung bringt. Ruft man die funktion für sich allein auf, kommt nie eine Fehlermeldung.

Bin etwas perplex und weiß auch nicht genau, wie ich das genauer beschreiben kann. Kennt jemand das Problem, dass ein Fehler ohne Änderung des Quelltextes einmal auftritt und einmal nich (immer abwechselnd).

Danke

Geschrieben
ReDim datenfeld(AnzahlDatensaetze, 7)

...

datenfeld(Zeile - 6, 7) = Range("H" & Zeile).Value ' Einheit

Spontan und ohne gross drauf zu schauen würde ich sagen, es liegt daran das du "datrenfeld" mit AnzahlDatensaetze, 7 definierst, aber bis index 7 gehst (welches das 8. ist)

Geschrieben
Spontan und ohne gross drauf zu schauen würde ich sagen, es liegt daran das du "datrenfeld" mit AnzahlDatensaetze, 7 definierst, aber bis index 7 gehst (welches das 8. ist)

Grundsätzlich stimmt das. Komisch, dass es trotzdem geht. Es geht auch nicht anders. Der fängt wohl auch bei Dimension 0 an. Trotzdem dank.

War ein ganz anderer Fehler, den ich gemacht habe. Es lag daran, dass ich noch das richtige Worksheet aktivieren musste. Und durch einen Zufall war das Worksheet jedes zweite mal nicht aktiv.:floet:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...