У меня есть код ниже, чтобы скрыть / показать целые строки в зависимости от соответствующего значения ячейки (скрыть, если это 0), и он отлично работает.
Это список материалов и кнопка «Завершить». В конце списка вы нажимаете кнопку, и любой элемент с количеством = 0 должен скрывать эту соответствующую строку.
Работает нормально. Но проблема в том, что это очень медленно. Как вы можете видеть, это 400+ строк, и я буквально вижу, как линии исчезают. Он обрабатывает примерно 20 строк в секунду, что делает список более 20 секунд. И этот список будет удваиваться каждые несколько месяцев.
Итак, вопрос в том, существует ли какой-либо другой метод, который скрывает соответствующие строки в одно мгновение или, по крайней мере, быстрее, чем в настоящее время?
Большое спасибо!
Hide:
Public Sub HideRows()
Dim cell As Range
For Each cell In ActiveSheet.Range("H18:H469")
cell.EntireRow.Hidden = (cell.Value = 0 And cell.Value <> "")
Next cell
End Sub
Unhide:
Public Sub UnhideRows()
Dim cell As Range
For Each cell In ActiveSheet.Range("H18:H469")
If (cell.Value = 0 And cell.Value <> "") Then cell.EntireRow.Hidden = False
Next cell
End Sub