Подскажите правильный код макроса по скрытию строки если, в ячейке есть удовлетворительное условие.
Макрос который использовался:
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
За это время, я перебрал макрос полностью под условие, "Если в столбце есть ячейка с данными "Переведен", то необходимо скрыть строку":
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? Или вы хотите обратиться к другой ячейке?
Или в этом коде вы не к ячейке обращаетесь, а предполагали сделать другое действие?
Ко всем ячейкам в столбце "Е"
Этим вы что хотели сказать:?
Cells(2, 1000)
Что означает 2, что означает 1000?
Диапазон с E2 по Е1000
Этот код:
Cells(2, 1000)
означает только одну ячейку, которая находится в строке 2, в столбце 1000 (ALL2).
Первое число в скобках - это номер строки (2), второе число - номер столбца (ALL).
Значит вам надо что-то другое использовать.