Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 03 марта 2024, 17:08

Название: Скрытие по данным
Отправлено: Посетитель от 03 марта 2024, 17:08
Подскажите правильный код макроса по скрытию строки если, в ячейке есть удовлетворительное условие.
Макрос который использовался:
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
Название: Скрытие по данным
Отправлено: Администратор от 03 марта 2024, 19:52
Написал вам два письма на почту с заголовком "Письмо с Форума по VBA, Excel и Word". Написал именно на почту, а не на форум.

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

Пример использования кавычек:
LastRow = Cells(Rows.Count, "E").End(xlUp).Row
Название: Скрытие по данным
Отправлено: Посетитель от 03 марта 2024, 20:42
За это время, я перебрал макрос полностью под условие, "Если в столбце есть ячейка с данными "Переведен", то необходимо скрыть строку":

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, не подскажите с чем это может быть связано?
Название: Скрытие по данным
Отправлено: Администратор от 03 марта 2024, 20:56
К какой ячейке вы здесь обращаетесь:?
Cells(2, 1000)

К ячейке, которая находится в строке 2, в столбце 1 000? Или вы хотите обратиться к другой ячейке?
Или в этом коде вы не к ячейке обращаетесь, а предполагали сделать другое действие?
Название: Скрытие по данным
Отправлено: Посетитель от 03 марта 2024, 21:20
Ко всем ячейкам в столбце "Е"
Название: Скрытие по данным
Отправлено: Администратор от 03 марта 2024, 21:39
Этим вы что хотели сказать:?
Cells(2, 1000)

Что означает 2, что означает 1000?
Название: Скрытие по данным
Отправлено: Посетитель от 03 марта 2024, 21:41
Диапазон с E2 по Е1000
Название: Скрытие по данным
Отправлено: Администратор от 04 марта 2024, 08:57
Этот код:
Cells(2, 1000)
означает только одну ячейку, которая находится в строке 2, в столбце 1000 (ALL2).
Первое число в скобках - это номер строки (2), второе число - номер столбца (ALL).

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