#excel #vba #rows #hidden
#excel #vba #строки #скрытый
Вопрос:
У меня есть две именованные строки с информацией между ними, которые я хотел бы переключать между скрытыми и нескрытыми. Я не хочу использовать группировку данных, потому что информация между именованными строками часто перемещается.
Верхняя строка YEAR2019 и YEAR2020 должны оставаться видимыми все время.
В настоящее время я пытаюсь это сделать, но получаю ошибки и, похоже, не могу заставить его работать —
Sub HideRowsYEAR2020()
Range(.Cells(.Range("YEAR2019").Row 1), _
.Cells(.Range("YEAR2020").Row - 1)).Select
If Selection.EntireRow.Hidden Then
Selection.EntireRow.Hidden = False
Else
Selection.EntireRow.Hidden = True
End If
End Sub
Ответ №1:
Когда вы используете .
, это должно быть внутри инструкции with. Нравится With ActiveSheet
Также Cells()
ожидается ссылка на столбец в качестве второго критерия.
Sub HideRowsYEAR2020()
With ActiveSheet 'Should change to actual sheet
With .Range(.Cells(.Range("YEAR2019").Row 1, 1), .Cells(.Range("YEAR2020").Row - 1, 1))
If .EntireRow.Hidden Then
.EntireRow.Hidden = False
Else
.EntireRow.Hidden = True
End If
End With
End With
End Sub
Комментарии:
1. Вместо полного
If … Else … End If
блока вы можете просто написать.EntireRow.Hidden = Not .EntireRow.Hidden
, и он будет переключаться междуTrue
иFalse
.