Excel вылетает между концом и для l oop? - PullRequest
0 голосов
/ 14 февраля 2020

Всякий раз, когда я пытаюсь добавить строку, она случайно вылетает. да, случайно. иногда он падает на end with, а иногда на for rij = 4 to lastRow.

, если я использую отладчик в vba с высокой скоростью прохождения строк, он падает быстрее. и если я делаю паузы (30 секунд) между отладкой строки, это не вызывает sh.

как я могу исправить эту проблему?

Редактировать: у меня точно такой же код в другой модуль, и он там работает.

lastrow имеет значение 5, когда я отлаживаю его, поэтому проблема не в том, что Rij> lastRow

код:

    Option Explicit
Dim lastRow As Long
Dim IngevuldeCellen As Integer
Dim Ingevuld As Integer
Dim Rij As Integer
Dim tbl As Object
Dim AantalRijen As Integer
Dim laatsteRij As Long
Private Sub WorkSheet_Change(ByVal Target As Range)
     'Als laatste rij 6 ingevulde velden heeft doe dit
    lastRow = Cells(Cells.Rows.Count, "B").End(xlUp).Row
    IngevuldeCellen = WorksheetFunction.CountA(Range("B" & lastRow & ":G" & lastRow))
    If IngevuldeCellen >= 4 Then
        Call Module3.AddRowToBottom
        Range("F1:F" & lastRow).Interior.Color = RGB(59, 148, 0)
        Range("A1:A" & lastRow).Interior.Color = RGB(59, 148, 0)

    ElseIf IngevuldeCellen < 4 Then
    Range("A" & lastRow).Interior.Color = RGB(255, 0, 0)
    Range("F" & lastRow).Interior.Color = RGB(255, 0, 0)
    End If


    Ingevuld = WorksheetFunction.CountA(Range("H6:O18"))
    If Ingevuld >= 10 Then
        With Sheets("Ruimtelijst")
            lastRow = .Cells(Cells.Rows.Count, "G").End(xlUp).Row
        End With
        For Rij = 4 To lastRow
            If Not Intersect(Target, Blad3.ListObjects("tbl_" & Rij - 3).Range) Is Nothing Then
                'Zoek de laatste rij van de tabel op
                Set tbl = Blad3.ListObjects("tbl_" & Rij - 3)
                AantalRijen = tbl.Range.Rows.Count
                laatsteRij = tbl.Range.Cells(AantalRijen, "E").Row
                'Roept module
                Call Module3.AddRow(laatsteRij)
            End If
        Next Rij
    End If
End Sub

1 Ответ

0 голосов
/ 04 марта 2020

Благодаря Teamothy я обнаружил, что модули VBA могут случайно повреждаться. Я исправил это, скопировав весь код и вставив его в новую электронную таблицу.

...