Доброе утро, все,Скрыть строки на основе пользовательской формы checkbox
У меня есть макрос, который я хочу сортировать. Кнопка в моей книге вызывает небольшую пользовательскую форму с 10 флажками. Пользователь должен выбрать те категории, которые он хочет просмотреть, и выбрать сортировку. Результат, который я хочу, это только те категории, которые он выбрал для отображения, но я получаю все или ничего из прилагаемого макроса. Ниже приведен макрос, который поддерживает форму/кнопку для сортировки категорий. Я искал через Google и несколько других форумов и не могу найти ответ, имеющий отношение к моей проблеме! Любая помощь, которую вы могли бы предложить, была бы весьма признательна.
Спасибо!
Private Sub cmdSort_Click()
LastRow = Range("A" & Rows.Count).End(xlUp).Row
If chkFE = True Then
For Each cell In Range("BC4:BC" & LastRow)
If UCase(cell.Value) <> "Fire Extinguishers" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkChem = True Then
For Each cell In Range("BD4:BD" & LastRow)
If UCase(cell.Value) <> "Chem" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkFL = True Then
For Each cell In Range("BE4:BE" & LastRow)
If UCase(cell.Value) <> "FL" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkElec = True Then
For Each cell In Range("BF4:BF" & LastRow)
If UCase(cell.Value) <> "Elec" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkFP = True Then
For Each cell In Range("BG4:BG" & LastRow)
If UCase(cell.Value) <> "FP" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkLift = True Then
For Each cell In Range("BH4:BH" & LastRow)
If UCase(cell.Value) <> "Lift" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkPPE = True Then
For Each cell In Range("BI4:BI" & LastRow)
If UCase(cell.Value) <> "PPE" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkPS = True Then
For Each cell In Range("BJ4:BJ" & LastRow)
If UCase(cell.Value) <> "PS" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkSTF = True Then
For Each cell In Range("BK4:BK" & LastRow)
If UCase(cell.Value) <> "STF" Then
cell.EntireRow.Hidden = True
End If
Next
End If
If chkErgonomics = True Then
For Each cell In Range("BL4:BL" & LastRow)
If UCase(cell.Value) <> "Ergonomics" Then
cell.EntireRow.Hidden = True
End If
Next
End If
Unload frmSort
End Sub
Это хороший ответ. Фильтрация - это путь. Обратите внимание, что перекрестная проводка на другие сайты не считается большой практикой: http://meta.stackexchange.com/questions/141823/why-is-cross-posting-wrong-on-an-external -site. На самом деле на другом форуме есть ссылка по каждому вопросу, который гласит: «Я согласен с этими правилами». # 3 заключается в том, что вы не будете перекрестно размещать сообщения, не указывая на это. Для меня это не очень важно, но было бы хорошо знать. –
Извините, я просто пытался дать кредит там, где он должен. Я буду уверен, что в следующий раз это станет более ясным. Благодаря! – nickJR