Скрытие строк в Microsoft Excel — задача, с которой сталкивается каждый второй пользователь при работе с большими таблицами. Иногда нужно временно убрать служебные данные, иногда — скрыть промежуточные расчёты, а иногда и вовсе автоматизировать процесс через макросы. Но как сделать это быстро, не теряя данные и не нарушая структуру документа?
В этой статье разберём все возможные способы скрытия строк — от базовых комбинаций клавиш до продвинутых VBA-команд, которые сэкономят часы рутинной работы. Особое внимание уделим типичным ошибкам (например, почему после скрытия строки СУММ перестаёт корректно считать) и нюансам для разных версий Excel (2010, 2016, 2019, 365). Если вы когда-нибудь теряли данные после скрытия или не могли найти скрытые строки — здесь найдёте решения.
1. Базовый способ: скрытие строк через контекстное меню
Самый простой метод, который работает во всех версиях Excel — от Excel 2007 до Microsoft 365. Он не требует знания команд или макросов, но имеет ограничения: скрыть можно только выделенные строки, а не по условию.
Чтобы скрыть строку:
- Выделите номер строки (или несколько строк) слева от таблицы. Например, строку
5. - Кликните правой кнопкой мыши по выделенному номеру.
- В контекстном меню выберите
Скрыть(Hide в английской версии).
Строка исчезнет, но её данные останутся в файле. Чтобы вернуть строку обратно, выделите соседние строки (например, 4 и 6), кликните правой кнопкой и выберите Показать (Unhide).
- ✅ Плюсы метода: работает без интернета, не требует прав администратора, подходит для новичков.
- ❌ Минусы: нельзя скрыть строки по условию (например, все пустые или с отрицательными значениями).
- ⚠️ Нюанс: в Excel Online этот способ работает иначе — скрытие доступно только через вкладку
Главная → Формат → Скрыть строки.
2. Горячие клавиши для скрытия строк (самый быстрый способ)
Если вы часто работаете с большими таблицами, запомните эти комбинации — они сэкономят минуты каждый день:
- 🔹
Ctrl + 9— скрыть выделенные строки. - 🔹
Ctrl + Shift + 9— показать скрытые строки в выделенном диапазоне. - 🔹
Alt + H → O → H → R(последовательно) — альтернативный способ через ленту меню.
Пример: вам нужно скрыть строки с 10 по 20. Выделяете диапазон строк (кликаете по номеру 10, зажимаете Shift и кликаете по 20), затем нажимаете Ctrl + 9. Готово!
Важно: если после нажатия Ctrl + 9 ничего не происходит, проверьте:
- Выделены ли строки (а не ячейки внутри строк).
- Не включён ли режим
Режим разбивки(Page Break Preview) — в нём горячие клавиши могут не работать. - Не конфликтует ли комбинация с клавишами вашей клавиатуры (например, на некоторых ноутбуках
FnблокируетF-клавиши).
3. Скрытие строк по условию (без VBA)
Допустим, вам нужно скрыть все строки, где в столбце B значение меньше 100, или где ячейка в столбце D пустая. Для этого не обязательно писать макросы — можно использовать фильтр:
- Выделите диапазон данных (включая заголовки).
- Перейдите на вкладку
Данные → Фильтр(Data → Filter). - Кликните по стрелке фильтра в столбце, по которому нужно отфильтровать (например,
B). - Выберите
Числовые фильтры → Меньше чем(Number Filters → Less Than) и укажите значение100. - Нажмите
ОК— строки, не соответствующие условию, будут скрыты.
Чтобы вернуть все строки, снова нажмите Фильтр и выберите Очистить фильтр (Clear Filter).
Чем фильтр отличается от скрытия строк?
Фильтр временно скрывает строки, но они остаются доступны для формул и диаграмм. При реальном скрытии (через Ctrl+9) строки исключаются из некоторых вычислений, например, в СЧЁТ или СРЗНАЧ.
| Метод | Сохраняет данные | Работает с формулами | Требует VBA |
|---|---|---|---|
| Контекстное меню | ✅ Да | ⚠️ Частично | ❌ Нет |
| Горячие клавиши | ✅ Да | ⚠️ Частично | ❌ Нет |
| Фильтр | ✅ Да | ✅ Полностью | ❌ Нет |
| VBA-команда | ✅ Да | ⚠️ Зависит от кода | ✅ Да |
4. Скрытие строк через VBA: команды и примеры скриптов
Если вам нужно скрыть строки автоматически (например, по расписанию или при открытии файла), без Visual Basic for Applications не обойтись. Вот базовые команды:
Чтобы скрыть строку 5:
Rows(5).Hidden = True
Чтобы скрыть диапазон строк с 10 по 20:
Rows("10:20").Hidden = True
Чтобы скрыть строки, где в столбце A значение равно "Удалить":
Dim i As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(i, 1).Value = "Удалить" Then
Rows(i).Hidden = True
End If
Next i
Убедитесь, что вкладка Разработчик включена (Файл → Параметры → Настройка ленты)
Откройте редактор VBA через Alt + F11
Создайте новый модуль (Insert → Module)
Скопируйте код в модуль и запустите через F5 или кнопку Run
-->
Критичный нюанс: если в скрытых строках есть данные, на которые ссылаются формулы, Excel продолжит их учитывать в расчётах, даже если строки не видны. Чтобы исключить скрытые строки из формул, используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ (SUBTOTAL) с первым аргументом 109 (игнорирует скрытые ячейки).
Пример формулы, которая суммирует только видимые ячейки в диапазоне B2:B100:
=ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; B2:B100)
5. Типичные ошибки при скрытии строк и как их избежать
Даже опытные пользователи иногда сталкиваются с проблемами после скрытия строк. Вот самые распространённые:
- 🔴 Формулы выдают #ССЫЛКА! — это происходит, если в формуле есть ссылка на ячейку в скрытой строке, а сама строка была удалена (не скрыта!). Проверьте историю изменений (
Ctrl + Z) или восстановите данные из резервной копии. - 🔴 Нельзя скрыть строку — если строка содержит
Объединённые ячейки(Merged Cells), Excel может блокировать скрытие. Разъедините ячейки перед скрытием. - 🔴 Скрытые строки не отображаются после
Показать— если строки были скрыты черезГруппировку(Grouping), используйте значки+/-слева от таблицы, а не командуПоказать.
⚠️ Внимание: в Excel 2016 и новее есть баг: если скрыть строку, содержащую Таблицу Excel (Excel Table), то при добавлении новых данных в таблицу скрытые строки могут внезапно появиться. Чтобы избежать этого, скрывайте строки вне диапазона таблицы или используйте фильтр.
6. Как скрыть строки в защищённом листе
Если лист защищён паролем, стандартные способы скрытия строк (Ctrl + 9 или контекстное меню) не сработают. Вам понадобится:
- Снять защиту листа:
Рецензирование → Снять защиту листа(Review → Unprotect Sheet). - Скрыть нужные строки любым из описанных выше методов.
- Вернуть защиту:
Рецензирование → Защитить лист.
Если вы не знаете пароль, можно попробовать обойти защиту через VBA (работает не во всех версиях Excel):
Sub RemoveSheetProtection()
ActiveSheet.Unprotect Password:="ваш_пароль"
' Если пароль неизвестен, попробуйте пустую строку:
' ActiveSheet.Unprotect Password:=""
End Sub
⚠️ Внимание: в Excel 2019 и Microsoft 365 усилена защита от взлома паролей. Если лист защищён с опцией Защитить текущий лист и содержимое защищаемых ячеек, обойти защиту без пароля практически невозможно.
7. Продвинутые сценарии: скрытие строк по расписанию или при событии
Допустим, вам нужно автоматически скрывать строки с просроченными задачами каждый понедельник или скрывать служебные данные при отправке файла коллегам. Для этого подойдут макросы с триггерами.
Пример 1: скрыть строки при открытии файла, если текущая дата больше даты в столбце C:
Private Sub Workbook_Open()
Dim i As Long, lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow
If Cells(i, 3).Value < Date Then
Rows(i).Hidden = True
End If
Next i
End Sub
Пример 2: скрыть строки при изменении значения в ячейке A1:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
If Range("A1").Value = "Скрыть" Then
Rows("5:10").Hidden = True
Else
Rows("5:10").Hidden = False
End If
End If
End Sub
Чтобы эти макросы заработали:
- Откройте редактор VBA (
Alt + F11). - Для первого примера вставьте код в объект
ThisWorkbook. - Для второго — в объект листа (например,
Лист1). - Сохраните файл как
.xlsm(с поддержкой макросов).
FAQ: Частые вопросы о скрытии строк в Excel
Можно ли скрыть строки в Excel Online?
Да, но с ограничениями. В Excel Online нет горячих клавиш Ctrl + 9, но можно скрыть строки через меню: выделите строки → Главная → Формат → Скрыть строки. VBA и макросы в онлайн-версии не поддерживаются.
Почему после скрытия строки формула СУММ стала показывать 0?
Скорее всего, вы не скрыли строку, а удалили её. Проверьте историю изменений (Ctrl + Z) или восстановите данные из резервной копии. Если строка действительно скрыта, проблема может быть в диапазоне формулы — обновите его.
Как скрыть строки на всех листах книги одновременно?
Используйте VBA-скрипт:
Sub HideRowsInAllSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Rows("5:10").Hidden = True
Next ws
End Sub
Этот код скрывает строки с 5 по 10 на всех листах книги.
Можно ли скрыть строки так, чтобы их нельзя было показать обратно?
Технически нет — в Excel всегда есть способ вернуть скрытые строки (через Показать или VBA). Но можно:
- Защитить лист с паролем после скрытия строк.
- Удалить строки вместо скрытия (но тогда данные потеряются).
- Скрыть строки и сохранить файл в формате
.xlsb(двоичный формат), который сложнее редактировать.
Почему в моём Excel нет команды "Скрыть" в контекстном меню?
Вероятные причины:
- Вы кликаете не по номеру строки, а по ячейке внутри строки.
- У вас включён
Режим разбивки(Page Break Preview) — переключитесь обратно вОбычный режим. - Вы работаете в Excel для Mac — там контекстное меню строки открывается по
Ctrl + клик.