Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос, сокращающий строки с 0 по А:А - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Макрос, сокращающий строки с 0 по А:А
Andrey82 Дата: Пятница, 02.05.2014, 15:32 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
Добрый день!
В А:А столбец цифр. Нужно скрыть строки содержащие 0.
Пока решение такое:

[vba]
Код

Private Sub Worksheet_Activate()
     For Each cell In Range("a1:a999")
         If cell.Value = 0 Then
             cell.EntireRow.Hidden = True
         ElseIf cell.Value <> 0 Then
             cell.EntireRow.Hidden = False
         End If
     Next
      
End Sub
[/vba]

Сделал запуск по переходу на лист.
Работает он долго и нудно.
Как бы его оптимизировать?
В идеале строки, в которых возвращен 0 должны скрываться сразу.
Спасибо.
К сообщению приложен файл: 92356823687.xlsm (19.0 Kb)
 
Ответить
СообщениеДобрый день!
В А:А столбец цифр. Нужно скрыть строки содержащие 0.
Пока решение такое:

[vba]
Код

Private Sub Worksheet_Activate()
     For Each cell In Range("a1:a999")
         If cell.Value = 0 Then
             cell.EntireRow.Hidden = True
         ElseIf cell.Value <> 0 Then
             cell.EntireRow.Hidden = False
         End If
     Next
      
End Sub
[/vba]

Сделал запуск по переходу на лист.
Работает он долго и нудно.
Как бы его оптимизировать?
В идеале строки, в которых возвращен 0 должны скрываться сразу.
Спасибо.

Автор - Andrey82
Дата добавления - 02.05.2014 в 15:32
DJ_Marker_MC Дата: Пятница, 02.05.2014, 15:40 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
[vba]
Код
Private Sub Worksheet_Activate()()
      ActiveSheet.Range("$A:$A").AutoFilter Field:=1, Criteria1:="<>0", Operator:=xlFilterValues
End Sub
[/vba]


Сообщение отредактировал DJ_Marker_MC - Пятница, 02.05.2014, 15:41
 
Ответить
Сообщение[vba]
Код
Private Sub Worksheet_Activate()()
      ActiveSheet.Range("$A:$A").AutoFilter Field:=1, Criteria1:="<>0", Operator:=xlFilterValues
End Sub
[/vba]

Автор - DJ_Marker_MC
Дата добавления - 02.05.2014 в 15:40
Andrey82 Дата: Пятница, 02.05.2014, 15:45 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010
DJ_Marker_MC, гм, действительно!
Спасибо :)
 
Ответить
СообщениеDJ_Marker_MC, гм, действительно!
Спасибо :)

Автор - Andrey82
Дата добавления - 02.05.2014 в 15:45
Alex_ST Дата: Пятница, 02.05.2014, 19:04 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Ну а если всё-таки не фильтр включать надо, а именно скрывать, то просто надо, просто обновление экрана вовремя отключать/включать[vba]
Код
Private Sub Worksheet_Activate()
     Dim rCell As Range
     Application.ScreenUpdating = False
     For Each rCell In [a1:a999]
         rCell.EntireRow.Hidden = rCell.Value = 0
     Next
     Application.ScreenUpdating = True
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу а если всё-таки не фильтр включать надо, а именно скрывать, то просто надо, просто обновление экрана вовремя отключать/включать[vba]
Код
Private Sub Worksheet_Activate()
     Dim rCell As Range
     Application.ScreenUpdating = False
     For Each rCell In [a1:a999]
         rCell.EntireRow.Hidden = rCell.Value = 0
     Next
     Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 02.05.2014 в 19:04
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!