Скрытие по данным

Автор Посетитель 03.03.2024, 03 марта 2024, 17:08

Посетитель 03.03.2024

Подскажите правильный код макроса по скрытию строки если, в ячейке есть удовлетворительное условие.
Макрос который использовался:
Sub HideRows()

Dim LastRow As Long

LastRow = Cells(Rows.Count, «E»).End(xlUp).Row

For i = 1 To LastRow

If Cells(i, «E»).Value = «Переведен» Then

Rows(i).Hide

End If

Next i

End Sub

Но выбивает ошибку 400

Администратор

Написал вам два письма на почту с заголовком "Письмо с Форума по VBA, Excel и Word". Написал именно на почту, а не на форум.

Почему происходит ошибка 400, я пока не знаю.
Но в вашем коде используются такие кавычки, что макрос вообще не запускается.
Вместо «» используйте "".
Замените кавычки в вашем макросе, если проблема останется, то выложите новую версию макроса, в котором правильные кавычки.

Пример использования кавычек:
LastRow = Cells(Rows.Count, "E").End(xlUp).Row

Посетитель 03.03.2024

За это время, я перебрал макрос полностью под условие, "Если в столбце есть ячейка с данными "Переведен", то необходимо скрыть строку":

Sub ColHide()

Application.ScreenUpdating = False

For Each s In Cells(2, 1000).CurrentRegion.Column(E).Cells

Rows(s.Row).EntireRow.Hidden = s.Value = "Переведен"

Next s

Application.ScreenUpdating = True


End Sub

но в третьей строке выбивает ошибку 451, не подскажите с чем это может быть связано?

Администратор

К какой ячейке вы здесь обращаетесь:?
Cells(2, 1000)

К ячейке, которая находится в строке 2, в столбце 1 000? Или вы хотите обратиться к другой ячейке?
Или в этом коде вы не к ячейке обращаетесь, а предполагали сделать другое действие?

Посетитель 03.03.2024

Ко всем ячейкам в столбце "Е"

Администратор

Этим вы что хотели сказать:?
Cells(2, 1000)

Что означает 2, что означает 1000?

Посетитель 03.03.2024

Диапазон с E2 по Е1000

Администратор

Этот код:
Cells(2, 1000)
означает только одну ячейку, которая находится в строке 2, в столбце 1000 (ALL2).
Первое число в скобках - это номер строки (2), второе число - номер столбца (ALL).

Значит вам надо что-то другое использовать.