Страницы: 1
RSS
Скрытие строк через макросом
 
Как исправить макрос чтоб она проверяла второй столбец F и скрывала строку пустые или нулевые значение
Проверяет и скрывает строку только на E
лист 3

Sub ToggleButton1_Click()
Dim i As Range
Application.ScreenUpdating = 0
If ToggleButton1 Then
For Each i In [E5:E17]
If Len(i) = 0 Then i.EntireRow.Hidden = 1
Next
Else
[E5:E17].EntireRow.Hidden = 0
End If
Application.ScreenUpdating = 1

End Sub
 
Скрывать/удалять строки с листа нужно СНИЗУ вверх
Код
Sub ToggleButton1_Click()
Dim I As Long
Application.ScreenUpdating = 0
If ToggleButton1 Then
  For I = 17 To 5 Step -1
    If Len(Range("E" & I)) = 0 Then Range("E" & I).EntireRow.Hidden = 1
  Next
Else
  [E5:E17].EntireRow.Hidden = 0
End If
Application.ScreenUpdating = 1
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Sanja, ну, скрывать можно в любом порядке, если что. А вот удалять да, лучше снизу вверх, если удаление происходит построчно.
Изменено: Дмитрий(The_Prist) Щербаков - 09.10.2024 14:23:31
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Ничего не поменялось удаляет строку только со столба E, а мне надо в два столба E и F как сделать?

Sub ToggleButton1_Click()Dim I As Long
Application.ScreenUpdating = 0
If ToggleButton1 Then
 For I = 17 To 5 Step -1
   If Len(Range("E" & I)) = 0 Then Range("E" & I).EntireRow.Hidden = 1
 Next
Else
 [E5:E17].EntireRow.Hidden = 0
End If
Application.ScreenUpdating = 1 End Sub
 
Цитата
Orel-nsk написал:
надо в два столба E и F как сделать?
ну так добавьте нужное условие
Код
If Len(Range("E" & I)) = 0 And Len(Range("F" & I)) = 0 Then Range("E" & I).EntireRow.Hidden = 1
Согласие есть продукт при полном непротивлении сторон
 
Orel-nsk,
 
А как макрос может скрывать строку только в столбце E? Строка же - это все столбцы???
 
Цитата
Мистер Экселистор написал:
Строка же - это все столбцы
скрывает то все строки, но условия для скрытия нужно было брать из 2-х столбцов.
 
Цитата
Sanja написал:
If Len(Range("E" & I)) = 0 And Len(Range("F" & I)) = 0 Then
скрывать будет только те строки, где и в F и в Е пусто. Кстати, можно чуть иначе записать:
Код
If Len(Range("E" & I).Value & Range("F" & I).Value) = 0 Then


И на всякий случай добавлю вариант через OR:
Код
If Len(Range("E" & I)) = 0 Or Len(Range("F" & I)) = 0 Then

скрывать будет строки, где или в F или в Е пусто.
Изменено: Дмитрий(The_Prist) Щербаков - 10.10.2024 10:39:11
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
bigorq,
Ясно.
Большое спасибо!
 
Добрый день. Помогите пожалуйста нужно чтоб скрывала(удаляла) только те строки D5:D17 D24:D36 D43:D55 D62:D74 то есть строку 18-23; 37-42; 56-61 оставлять  видимым "Лист 3"
Код
Sub ToggleButton1_Click()
Dim I As Long
Application.ScreenUpdating = 0
If ToggleButton1 Then
  For I = 17 To 5 Step -1
    If Len(Range("D" & I)) = 0 Then Range("D" & I).EntireRow.Hidden = 1
  Next
Else
  [D5:D17].EntireRow.Hidden = 0
End If
Application.ScreenUpdating = 1
End Sub
Страницы: 1
Наверх