私はVBAに比較的新しいです。そして、私がワークシートで作業しているときに、列の行の条件に基づいて行を自動的に非表示/非表示するコードを作成しました(0表示/非表示)。この比較的簡単なマクロは、別のシートを追加するまでうまくいきました。このシートにはマクロがないので、関連しているとは思わない。しかし今は毎回END IF関数でランタイムエラーが発生し、解決方法はわかりません。おそらく単純な解決策がありますが、私はそれを見つけることができません。ここでVBA - END IFでのランタイムエラー
はコードです:あなたは、より完全なデバッグ情報が必要な場合は
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
ないあなたのエラーの原因が、あなたは網羅できている全体 '... ELSE ...エンドIf'は' c.EntireRow.Hidden = CBool(c.Value)として ' – Jeeped
は、そのエラーがない場合*ランタイムエラー以上の*何か*と言いますか? – usr2564301
'On Error Resume Next'を削除またはコメントアウトし、親ワークシート参照を範囲オブジェクトに適用します。ワークシートには、他のワークシートの変更による計算イベントのトリガーとなる揮発性の式が含まれている場合があります。 – Jeeped