Страница 1 из 1
Как перед закрытием проверить фильтры?
Добавлено: 19 апр 2005, 20:07
Laidi
Уважаемые специалисты, помогите пожалуйста. Как сделать так, чтобы перед закрытием EXCEL файла автоматически запускался бы макрос который проверяет на КАЖДОЙ странице закрываемой книги фильтры и делает ShowAllData. Из всего этого умею только ShowAllData, а как запускать и перебирать страницы не знаю :-) Спасибо!
Добавлено: 19 апр 2005, 22:19
pashulka
Учитывая, что в одном листе не может быть больше одного автофильтра, то под страницей наверное подразумевается рабочий лист, тогда :
Код: Выделить всё
For Each iList In Worksheets
MsgBox iList.Name
Next
А если нужно перебрать действительно все листы, то :
Код: Выделить всё
For Each iList In Sheets
MsgBox iList.Name
Next
Для автоматического запуска макроса перед закрытием рабочей книги используйте событие рабочей книги, а именно :
Код: Выделить всё
Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub
P.S. Программный текст этого макроса (события) необходимо расположить в соответствующем модуле ThisWorkbook/ЭтаКнига
Добавлено: 19 апр 2005, 23:22
Laidi
Очень все хорошо объяснили :-) Спасибо! Подскажите еще разок как мне решить проблему с ошибкой, в случае, если на одном из листов фильтр есть, но не включен.
Макрос получился (вернее Вы его написали :-) ) таким:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each iList In Sheets
iList.ShowAllData
Next
MsgBox "Fail kontrollitud!"
End Sub
Добавлено: 20 апр 2005, 00:12
pashulka
Код: Выделить всё
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each iList In Worksheets
If iList.AutoFilterMode = True Then
If iList.FilterMode = True Then
iList.ShowAllData
End If
End If
Next
End Sub
IMHO Я немного изменил перебираемое семейство, так как листы диаграмм, например принципиально не поддерживают автофильтры.
Добавлено: 20 апр 2005, 00:29
Laidi
Все отлично работает! Спасибо!