Betrifft: Array - Index außerhalb des gültigen Bereichs
von: Marc
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
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