Добрый день, уважаемые знатоки VBA. В очередной раз обращаюсь к Вам за помощью.
На листе в ячейке А2 есть выпадающий список из которого выбирается определенное название товара.
После этого нажимается кнопка и макрос сначала фильтрует таблицу ниже по критерию указанному в ячейке А2. После этого происходит проверка, если в отфильтрованном диапазоне значений нет - макрос должен выдать сообщение "Данных нет", если же в диапазоне содержаться данные, то макрос должен выдать сообщение "ОК".
Проблема в том, что макрос выдает сообщение "данных нет" и в том и другом случае, т.е. если данные в диапазоне отфильтрованы и когда отфильтрованный диапазон не содержит значений, т.е. пустой.
Помогите пожалуйста определить в чем может быть ошибка ?
На листе в ячейке А2 есть выпадающий список из которого выбирается определенное название товара.
После этого нажимается кнопка и макрос сначала фильтрует таблицу ниже по критерию указанному в ячейке А2. После этого происходит проверка, если в отфильтрованном диапазоне значений нет - макрос должен выдать сообщение "Данных нет", если же в диапазоне содержаться данные, то макрос должен выдать сообщение "ОК".
Проблема в том, что макрос выдает сообщение "данных нет" и в том и другом случае, т.е. если данные в диапазоне отфильтрованы и когда отфильтрованный диапазон не содержит значений, т.е. пустой.
Помогите пожалуйста определить в чем может быть ошибка ?
Код |
---|
Sub pro() 'снимаем фильтры с таблицы On Error Resume Next ActiveSheet.ShowAllData LastRow = Cells(Rows.Count, 1).End(xlUp).Row 'фильтруем данные на листе Лист1 по значению из ячейки А2 Range("A5:A" & LastRow).AutoFilter Field:=1, Criteria1:="=" & Range("A2"), Operator:=xlAnd 'проверка автофильтра на наличие отфильтрованных данных после фильтрации, критерий фильтрации ячейка А2 If Worksheets("Лист1").AutoFilter.Range("A5:A" & LastRow).SpecialCells(xlCellTypeVisible).Count = "" Then 'если нет отфильтрованных строк, кроме шапки таблице, то MsgBox "Данных нет", vbExclamation, "Ошибка" ActiveSheet.ShowAllData 'снимаем установленный фильтр Exit Sub End If MsgBox ("ok") End Sub |