Herbers Excel-Forum - das Archiv

Array - Index außerhalb des gültigen Bereichs


Betrifft: Array - Index außerhalb des gültigen Bereichs
von: Marc

Geschrieben am: 16.09.2019 10:08:10
Guten Morgen liebe Forumsgemeinde,
ich möchte im folgenden Code ein Array mit einer Spalte und x Zeilen dynamisch mit Werten füllen aber ich bekomme den im Betreff genannten Fehler, der sich auf die markierte Zeile bezieht:
Public Sub Eraser(ByVal Referenz As String, ByVal EntryNr As Long, ByVal Endrow As Long, ByVal   _
_
_
_
SpaltenIndex As Integer, ByVal Spalte2Index As Integer, ByVal Betrag As Currency)
Dim j As Long
Dim Nextlog As Long
Dim Payments As Integer ' Hilfsvariable, falls eine Forderung durch mehrere Zahlungen geklärt    _
_
_
_
wurde
Payments = 0
Dim tArray() ' As Long
tArray(Payments) = EntryNr - 1   '<<<<<<<<<<<<<<<<<<<<<<<<<<<<  "Index außerhalb des gültigen    _
_
_
_
Bereichs!"
' Abgleich & Kumulation der gefunden Einträge
For j = EntryNr To Endrow
If Restanten.Cells(j, SpaltenIndex).Value = Referenz Then
Betrag = Betrag + Restanten.Cells(j, Spalte2Index).Value
Payments = Payments + 1
ReDim Preserve tArray(Payments)
tArray(Payments) = (EntryNr - 1) + j
Else
End If
Next j
''''''''''' Übertrag ins Logsheet
If Logsheet.Range("A1").Value = "" Then Logsheet.Range("A1").Value = "Logdaten:"
' Klärung von Einträgen
If Betrag = 0 Then
Nextlog = Logsheet.UsedRange.Rows.Count + 1  ' Nächste freie Zeile im Logsheet ermitteln
For x = 0 To Payments - 1
Restanten.Rows(tArray(x)).Copy Logsheet.Rows(Nextlog)
Nextlog = Nextlog + 1
Next x
Else
End If
End Sub


Was ist an der Zeile falsch?
Viele Grüße,
Marc

Betrifft: AW: Array - Index außerhalb des gültigen Bereichs
von: 1713261.html
Geschrieben am: 16.09.2019 10:12:16
Hallo Marc,
du dimensionierst zwar tArray() als Array hast ihm aber bis zur fehlerhaften Zeile noch keinen Index zugewiesen. Das machst du erst in dieser Zeile: ReDim Preserve tArray(Payments)
Gruß
Nepumuk

Betrifft: AW: Array - Index außerhalb des gültigen Bereichs
von: 1713264.html
Geschrieben am: 16.09.2019 10:31:51
Hallo Nepumuk,
da lag der Fehler. Ich habe es nun gelöst indem ich direkt nach der ersten Dimensionierung eine Redimensionierung durchgeführt habe::
Dim tArray() As Long
ReDim tArray(Payments)
tArray(Payments) = EntryNr - 1

Vielen Dank und Gruß,
Marc

Excel-Beispiele zum Thema "Array - Index außerhalb des gültigen Bereichs"
Alle Zeilen und Spalten außerhalb des benutzten Bereiches löschen Mehrbereichsauswahl auf eine Seite drucken.
Spalten einer Mehrbereichsauswahl ausblenden. Den selben Bereichsnamen in mehreren Tabellenblättern
Serie von Bereichsnamenteilen einer Arbeitsmappe ändern Bereichsnamen ermitteln und als Kommentare anzeigen
Bereichsnamen in UserForm-ListBox auflisten und editieren Zugriff auf Zellen unter Verwendung eines Bereichsnamens
Mit VBA-Routine Bereichsnamen festlegen und ändern Druckbereichsauswahl über CheckBoxes