Ich bin relativ neu in VBA. Und als ich an einem Arbeitsblatt arbeitete, habe ich einen Code erstellt, der Zeilen basierend auf einer Bedingung in einer Spaltenzeile automatisch ein- und ausblendet (0 unhide/1 hide). Dieses relativ einfache Makro funktionierte gut, bis ich ein anderes Blatt hinzufügte. Da es keine Makros in diesem Blatt gibt, denke ich nicht, dass es verwandt ist. Aber jetzt gibt es jedes Mal einen Laufzeitfehler auf der END IF-Funktion und ich weiß nicht, wie ich es lösen soll. Es gibt wahrscheinlich eine einfache Lösung, aber ich kann sie nicht finden. HierVBA - Laufzeitfehler mit ENDE IF
ist der Code:
Private Sub Worksheet_Calculate()
Application.ScreenUpdating = False
Dim LastRow As Long, c As Range
Application.EnableEvents = False
LastRow = Cells(Cells.Rows.Count, "BA").End(xlUp).Row
On Error Resume Next
For Each c In Range("BA34:BA56,BA73:BA74,BA76:BA107")
If c.Value = 1 Then
c.EntireRow.Hidden = True
ElseIf c.Value = 0 Then
c.EntireRow.Hidden = False
End If
Next
On Error GoTo 0
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Wahrscheinlich nicht die Quelle der Fehler, aber man könnte das ganze umfassen 'If ... Else ... End If' als' c.EntireRow.Hidden = CBool (c.Value) ' – Jeeped
Hat diesen Fehler sage * alles * mehr als "Laufzeitfehler"? – usr2564301
Entfernen oder kommentieren Sie die 'On Error Resume Next' und wenden Sie eine übergeordnete Arbeitsblattverweis auf das Bereichsobjekt an. Das Arbeitsblatt kann flüchtige Formeln enthalten, die aufgrund von Änderungen auf dem anderen Arbeitsblatt ein Berechnungsereignis auslösen. – Jeeped