В VBA чтение и запись на рабочие листы являются самым большим убийцей времени. Таким образом, вы хотите свести к минимуму частоту взаимодействия с рабочими листами.
К счастью, вы можете читать несколько значений или скрывать несколько строк в одной команде вместо использования команды для каждого отдельного значения или строки.
Примерно так:
Private Sub ToggleButton1_Click()
Dim ws As Worksheet
Dim rangeToCheck As Range
Dim rangeToHide As Range
Dim sheetData() As Variant
Dim curRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1") 'Change to your worksheet name
Set rangeToCheck = ws.Range("AC10:AC800")
sheetData = rangeToCheck.Value 'Read all data from the range into an array at once
For curRow = LBound(sheetData) To UBound(sheetData)
If sheetData(curRow, 1) = 1 Then 'Check contents of each row, and add to range to hide if the check is true
If rangeToHide Is Nothing Then
Set rangeToHide = rangeToCheck.Rows(curRow).EntireRow
Else
Set rangeToHide = Union(rangeToHide, rangeToCheck.Rows(curRow).EntireRow)
End If
End If
Next curRow
'If at least one row was found, hide all rows at once
If Not rangeToHide Is Nothing Then rangeToHide.EntireRow.Hidden = ToggleButton1.Value
End Sub