Всякий раз, когда я пытаюсь добавить строку, она случайно вылетает. да, случайно. иногда он падает на 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