Спасибо конечно, но первые шаги мне уже не нужны. Я знаю как скрыть строки макросом, не знаю как это сделать например с каждой двадцатой. Но все равно посмотрю обязательно.
Э, нет. Тема о том, как скрывать. Будем скрывать. И немножко открывать. Каждую 20-ю.
Код
Sub RowsHidden()
Dim i As Long
Application.ScreenUpdating = False
With Worksheets("Лист1")
.Rows("20:50000").Hidden = True
For i = 20 To 50000 Step 20
.Rows(i).Hidden = False
Next i
End With
Application.ScreenUpdating = True
End Sub
Спасибо огромное!!! Мы мои глаза просто спасли!!! На втором сайте спасибо сказать не могу - забанили... Но скажу здесь еще раз СПАСИБО!!! Обещаю научиться таким премудростям когда-нибудь...
"Подобных тем на форуме порядка 512. В поиск запрос: скрыть строки по условию и выбирайте на свой вкус)"
Здравствуйте Друзья Благодарю Вас за помощь в познании возможностей VBA. Я привёл цитату, так как мой вопрос довольно "обмусоленный". Но в имеющихся ответах не смог найти нужный макрос. Одно мне кажется точно, что он возможно будет проще, чем были предложены раньше. Не знаю.
Мне нужно скрыть все строки на листе с нулевыми значениями - по всем столбцам (в том числе, если значение "0" стоит только, скажем, в 2-ух столбцах, а в других столбцах по данной строке - пустые ячейки). Полностью пустые строки не скрывать.
Помогите с кодом пожалуйста Благодарю! С уважением, Владимир..
Друзья, может кто-то всё же может помочь. Кто в этом деле разбирается?
Мне нужно скрыть все строки на листе с нулевыми значениями - по всем столбцам (в том числе, если значение "0" стоит только, скажем, в 2-ух столбцах, а в других столбцах по данной строке - пустые ячейки). Полностью пустые строки при этом не скрывать.
Прошу прощения за дубль (№18) Благодарю за помощь или попытку Больше безпокоить не буду. Файлик:
Sub tt()
Dim r As Range
Application.ScreenUpdating = False
With ActiveSheet.UsedRange.Columns("B:E")
.Rows.EntireRow.Hidden = False
For Each r In .Rows
If Not r.Find(0, , xlValues, xlWhole) Is Nothing Then r.EntireRow.Hidden = True
Next
End With
Application.ScreenUpdating = True
End Sub
Public Sub www()
Dim r As Range, d As Range
Application.ScreenUpdating = 0
Set d = Range("a7:e" & [a65536].End(xlUp).Row - 2)
d.EntireRow.Hidden = 0
For Each r In d.Rows
r.EntireRow.Hidden = IsNumeric(Application.Match(0, r, 0))
Next
Application.ScreenUpdating = -1
End Sub
Благодарю за коды Друзья. Первый, предложенный код скрывает только строки, если по столбцам стоят видимые "0". А как сделать, чтобы скрывал нули в финансовом формате? Я пробовал в коде поменять на: If Not r.Find("-", , xlValues, xlWhole) Is Nothing Then r.EntireRow.Hidden = True - не получилось Может здесь нужно конкретный формат указать?
Да, ещё один момент. В первом коде, если в строке по 3-ём столбцам стоят значения: 0, 1654, 156 - он скрывает всю строку (т.к. есть "0"), а не должен, т.к. есть другие значения.
Ещё раз для наглядности, что нужно, - выделил ячейки жёлтым цветом (в первом столбце), которые должны быть скрыты по условию. Благодарю!
Код Сергея ведь работает - диапазоны только измените, раз пример поменяли. Да, условие "0, 1654, 156" противоречит первоначальной задаче - значит эти коды не годятся, ждите другие.
Да, код Сергея предусматривает как раз таки данный формат, но он первоначально скрывал все строки. Также он скрывает строку, если по столбцам есть хотя бы один нуль, а в других - значения. Ну это теперь и так ясно. Оба кода хорошо применимы и в других случаях. Благодарю и за них! Может и по моему случаю будет решение
Sub tt()
Dim r As Range
Application.ScreenUpdating = False
With ActiveSheet.UsedRange.Columns("C:F")
.Rows.EntireRow.Hidden = False
For Each r In .Rows
If IsNumeric(Application.Match(0, r, 0)) Then
If Application.Sum(r) = 0 Then r.EntireRow.Hidden = True
End If
Next
End With
Application.ScreenUpdating = True
End Sub