Согласен, название статьи звучит страшно и не совсем понятно. Поэтому явно надо разъяснить поподробнее. Начну с предыстории. На одном форуме форумчанин задал вопрос — «Как инвертировать Selection?«(к слову ник форумчанина — Alex_ST). Т.е. если у Вас на листе выделена ячейка А1, то после работы кода будут выделены все ячейки на листе, кроме этой ячейки. Были предложены варианты, но…Каждый из них имел недостаток: либо для корректной работы требовалось создавать новую книгу или лист, либо не со всеми условиями работал корректно(например, выделение несмежных диапазонов), либо работал так долго, что можно было кофе сварить и выпить пока он работал. И вот на днях выдались пара свободных минут и решил я «добить» ту тему и создать-таки код, который будет работать без создания лишних листов и книг и довольно быстро. Сразу скажу, что довольно быстро понятие относительное. Все зависит от того, где и как выделен диапазон. Если изначально диапазон выделен как один неразрывный или как несколько несвязанных, но расположенных рядом друг с другом, то код отработает так же почти мгновенно. А вот если выделенная область расположена в конце листа(для Excel 2003 — 65536, Excel 2007 — 1048576) и в начале(первые строки и столбцы), то код может работать довольно долго. Но что-то я сомневаюсь, что многие будут выделять одновременно последнюю и первую ячейку на листе.
Option Explicit Dim alArrBegRows(), alArrEndRows(), alArrBegCols(), alArrEndCols() Dim lMinRow As Long, lMaxRow As Long, lMinCol As Long, lMaxCol As Long Sub Invert_Selection() Dim rArea As Range, rInvertRange As Range, rTmpRng As Range, rRng As Range Dim lr As Long, lc As Long, li As Long Dim lEndRow As Long, lEndCol As Long Dim bEqualRows As Boolean, bEqualCols As Boolean If TypeName(Selection) <> "Range" Then Exit Sub For Each rArea In Selection.Areas ReDim Preserve alArrBegRows(li), alArrEndRows(li), alArrBegCols(li), alArrEndCols(li) alArrBegRows(li) = rArea.Row: alArrEndRows(li) = rArea.Row + rArea.Rows.Count - 1 alArrBegCols(li) = rArea.Column: alArrEndCols(li) = rArea.Column + rArea.Columns.Count - 1 li = li + 1 Next rArea lMinRow = alArrBegRows(0): lMaxRow = 0: lMinCol = alArrBegCols(0): lMaxCol = 0 For li = 0 To UBound(alArrBegRows) If alArrBegRows(li) < lMinRow Then lMinRow = alArrBegRows(li) If alArrEndRows(li) > lMaxRow Then lMaxRow = alArrEndRows(li) If alArrBegCols(li) < lMinCol Then lMinCol = alArrBegCols(li) If alArrEndCols(li) > lMaxCol Then lMaxCol = alArrEndCols(li) Next li lEndRow = ActiveSheet.Rows.Count lEndCol = ActiveSheet.Columns.Count 'максимальные пороги If lMaxRow <> lEndRow Then Set rInvertRange = Rows(lMaxRow + 1 & ":" & lEndRow) End If If lMaxCol <> lEndCol Then If Not rInvertRange Is Nothing Then Set rInvertRange = Union(rInvertRange, Range(Cells(1, lMaxCol + 1), Cells(1, lEndCol)).EntireColumn) Else Set rInvertRange = Range(Cells(1, lMaxCol + 1), Cells(1, lEndCol)).EntireColumn End If End If 'минимальные пороги If lMinRow <> 1 Then If Not rInvertRange Is Nothing Then Set rInvertRange = Union(rInvertRange, Rows(1 & ":" & lMinRow - 1)) Else Set rInvertRange = Rows(1 & ":" & lMinRow - 1) End If End If If lMinCol <> 1 Then If Not rInvertRange Is Nothing Then Set rInvertRange = Union(rInvertRange, Range(Cells(1, 1), Cells(1, lMinCol - 1)).EntireColumn) Else Set rInvertRange = Range(Cells(1, 1), Cells(1, lMinCol - 1)).EntireColumn End If End If For li = 0 To UBound(alArrBegRows) 'Если выделен целый столбец/столбцы If alArrEndRows(li) = lEndRow And alArrBegRows(li) = 1 Then bEqualRows = 1 Else bEqualRows = 0 End If 'Если выделена целая строка/строки If alArrEndCols(li) = lEndCol And alArrBegCols(li) = 1 Then bEqualCols = 1 Else bEqualCols = 0 End If Next li 'Если выделены даже несвязанные строки/столбцы целиком If bEqualRows Then lMinRow = lMaxRow If bEqualCols Then lMinCol = lMaxCol 'ячейки "внутри" For lr = lMinRow To lMaxRow For lc = lMinCol To lMaxCol If Intersect_Nums(lr, lc) = False Then If rRng Is Nothing Then If lMinRow = lMaxRow Then Set rRng = Cells(lr, lc).EntireColumn Else If lMinCol = lMaxCol Then Set rRng = Cells(lr, lc).EntireRow Else Set rRng = Cells(lr, lc) End If End If Else If lMinRow = lMaxRow Then Set rRng = Union(rRng, Cells(lr, lc).EntireColumn) Else If lMinCol = lMaxCol Then Set rRng = Union(rRng, Cells(lr, lc).EntireRow) Else Set rRng = Union(rRng, Cells(lr, lc)) End If End If End If End If Next lc Next lr If Not rInvertRange Is Nothing Then If Not rRng Is Nothing Then Set rInvertRange = Union(rRng, rInvertRange) End If Else If Not rRng Is Nothing Then Set rInvertRange = rRng End If End If 'Действия над инвертированным диапазоном If Not rInvertRange Is Nothing Then rInvertRange.Select End If End Sub '--------------------------------------------------------------------------------------- ' Procedure : Intersect_Nums ' Purpose : Функция определения вхождения в диапазон '--------------------------------------------------------------------------------------- Function Intersect_Nums(lr As Long, lc As Long) As Boolean Dim lCntR As Long, lCntC As Long, li As Long For li = LBound(alArrBegRows) To UBound(alArrBegRows) For lCntR = alArrBegRows(li) To alArrEndRows(li) For lCntC = alArrBegCols(li) To alArrEndCols(li) If lr = lCntR Then If lc = lCntC Then Intersect_Nums = True: Exit Function End If Next lCntC Next lCntR Next li End Function
В приложенном файле примере код усложнен пользовательской формой(UserForm), при помощи которой можно выбрать действие с инвертированным диапазоном: Выделить, Очистит все, Очистить форматы, Очистить значения. Немного поменяв код Вы сможете легко добавить другие действия над диапазоном.
Выделение содержимого ячеек в Excel
В Excel можно выделять содержимое ячеек, строк или столбцов.
Примечание: Если лист защищен, возможность выделения ячеек и их содержимого может быть недоступна.
Выделение ячеек
-
Чтобы выделить ячейку, щелкните ее. Для перехода к ячейке и ее выделения также можно использовать клавиатуру.
-
Чтобы выбрать диапазон, выделите ячейку, а затем, удерживая основную кнопку мыши, перетащите выделение на другие ячейки.
Для этого также можно использовать SHIFT+клавиши со стрелками.
-
Чтобы выделить несмежные ячейки и диапазоны ячеек, выберите их, удерживая нажатой клавишу CTRL.
Выделение строк и столбцов
-
Щелкните букву в верхней части столбца, чтобы выделить его целиком. Можно также щелкнуть любую ячейку в столбце и нажать клавиши CTRL+ПРОБЕЛ.
-
Выберите номер строки, чтобы выделить ее целиком. Можно также щелкнуть любую ячейку в строке и нажать клавиши SHIFT+ПРОБЕЛ.
-
Чтобы выделить несмежные строки или столбцы, выберите их номера, удерживая нажатой клавишу CTRL.
Выделение таблицы, списка или листа
-
Чтобы выделить список или таблицу, щелкните любую содержащуюся в них ячейку и нажмите клавиши CTRL+A.
-
Чтобы выделить весь лист, нажмите кнопку Выделить все в его левом верхнем углу.
Чтобы выделить |
Выполните следующие действия |
---|---|
Отдельную ячейку |
Щелкните ячейку или воспользуйтесь клавишами со стрелками, чтобы перейти к нужной ячейке. |
Диапазон ячеек |
Щелкните первую ячейку диапазона, а затем перетащите мышь на его последнюю ячейку. Можно также нажать клавишу SHIFT и расширить выделенную область с помощью стрелок. Кроме того, можно выделить первую ячейку диапазона, а затем нажать клавишу F8 для расширения выделенной области с помощью стрелок. Чтобы остановить расширение выделенной области, еще раз нажмите клавишу F8. |
Большой диапазон ячеек |
Щелкните первую ячейку диапазона, а затем, удерживая клавишу SHIFT, щелкните последнюю ячейку диапазона. Для отображения последней ячейки используйте прокрутку. |
Все ячейки листа |
Нажмите кнопку Выделить все.
Чтобы выделить весь лист, также можно нажать клавиши CTRL+A. Примечание: Если таблица содержит данные, по нажатию клавиш CTRL+A выделяется текущий диапазон. Повторное нажатие клавиш CTRL+A приведет к выделению всей таблицы. |
Несмежные ячейки или диапазоны ячеек |
Выберите первую ячейку или диапазон ячеек, а затем, удерживая нажатой клавишу CTRL, выделите другие ячейки или диапазоны. Можно также выбрать первую ячейку или диапазон ячеек, а затем нажать клавиши SHIFT+F8 для включения в выделение других несмежных ячеек или диапазонов. Чтобы остановить включение ячеек и диапазонов, снова нажмите клавиши SHIFT+F8. Примечание: Отменить выделение отдельных несмежных ячеек или диапазонов без отмены всего выделения невозможно. |
Столбец или строку целиком |
Щелкните заголовок сроки или столбца.
1. Заголовок строки 2. Заголовок столбца Можно также выделить ячейки в строке или столбце, выделив первую строку, а затем нажав клавиши CTRL+SHIFT+СТРЕЛКА (ВПРАВО или ВЛЕВО — для строк, ВВЕРХ или ВНИЗ — для столбцов). Примечание: Если в строке или столбце содержатся данные, при нажатии клавиш CTRL+SHIFT+СТРЕЛКА будет выделена строка или столбец до последней заполненной ячейки. Повторное нажатие клавиш CTRL+SHIFT+СТРЕЛКА приведет к выделению строки или столбца полностью. |
Смежные строки или столбцы |
Протащите мышь по заголовкам строк или столбцов. Можно также выделить первую строку или столбец, а затем, нажав клавишу SHIFT, выделить последнюю строку или столбец. |
Несмежные строки или столбцы |
Выделите заголовок строки или столбца первой строки или столбца выделения, а затем, нажав клавишу CTRL, щелкните заголовки столбцов или строк, которые нужно добавить к выделению. |
Первую или последнюю ячейку в строке или столбце |
Выделите ячейку в строке или столбце, а затем нажмите клавиши CTRL+СТРЕЛКА (ВПРАВО или ВЛЕВО — для строк, ВВЕРХ или ВНИЗ — для столбцов). |
Первую или последнюю ячейку на листе или в таблице Microsoft Office Excel |
Чтобы выделить первую ячейку на листе или в списке Excel, нажмите сочетание клавиш CTRL+HOME. Чтобы выделить последнюю ячейку, содержащую данные или форматирование, на листе или в списке Excel, нажмите сочетание клавиш CTRL+END. |
Ячейки до последней используемой ячейки листа (нижний правый угол) |
Выделите первую ячейку, а затем нажмите клавиши CTRL+SHIFT+END, чтобы расширить выделенную область до последней используемой ячейки листа (нижний правый угол). |
Ячейки до начала листа |
Выделите первую ячейку, а затем нажмите клавиши CTRL+SHIFT+HOME, чтобы расширить выделенную область до начала листа. |
Больше или меньше ячеек, чем имеется в активном выделении |
Удерживая нажатой клавишу SHIFT, щелкните последнюю ячейку, которую нужно включить в новую выделенную область. В новую выделенную область войдет прямоугольный диапазон между активная ячейка и ячейкой, которая была щелкнута. |
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Выделение отдельных ячеек или диапазонов
Добавление и удаление строк и столбцов в таблице Excel
Перемещение и копирование строк и столбцов
Транспонирование (поворот) данных из строк в столбцы и наоборот
Закрепление областей окна для блокировки строк и столбцов
Блокировка и разблокировка определенных областей защищенного листа
Нужна дополнительная помощь?
Перейти к содержанию
На чтение 2 мин Просмотров 907 Опубликовано 07.04.2022
В Excel есть огромное количество полезных функций для работы с разными объемами данных.
К примеру, вы выделили лишний элемент и нужно отменить его выделение.
Раньше нельзя было сделать это (в ранних версиях), а сейчас — можно.
Я думаю это потому, что люди писали много отзывов и разработчики отреагировали.
Содержание
- Отменяем выделение
- Отменяем выделение определенных столбиков
- Как выделить диапазон ячеек
Отменяем выделение
Допустим, у нас есть такая табличка:
Наша задача — выделить все кроме столбиков с кварталами (Q1 и Q2).
Как это сделать?
Нужно выделить все, а потом исключить эти столбики так:
- Зажимаем CTRL и выделяем столбики, которые нужно исключить, отдельно.
Тоже самое и для тех элементов, которые вы случайно выделили. Просто зажмите CTRL и нажмите на лишнее.
Если лист защищен — вы не сможете выделить что-либо.
Отменяем выделение определенных столбиков
Бывают ситуации, когда вам нужно выделить весь лист, исключая какие-нибудь столбики.
Допустим, нам нужно выделить все кроме 5 и 9 столбика. Как это сделать?
Пошаговая инструкция:
- Для начала выделим все (CTRL + A);
- А теперь зажмите CTRL и нажмите на 5 и 9 столбики.
Как выделить диапазон ячеек
- С помощью мышки и левой кнопки. Просто зажмите её на той ячейке, с которой хотите начать и ведите мышь до той, на которой хотите закончить;
- А если нужно выделить какие-то конкретные ячейки или диапазоны, которые не находятся рядом, то, после выделения первой ячейки (или диапазона), зажмите CTRL и выделите второй. Так можно выделить сколько угодно ячеек (или диапазонов).
Я рад тому, что Excel дали нам возможность исключать какие-либо элементы из выделения. Это сохраняет нам кучу времени.
Надеюсь, эта статья оказалась полезной для вас!
Прежде, чем приступить к выполнению действий с ячейками в таблицах Эксель, для начала нужно их выделить. В программе есть возможность сделать это разными методами, которые позволяют отметить как отдельные ячейки, так и целые строки, столбца, а также произвольные диапазоны элементов. Ниже мы разберем все методы, пользуясь которыми можно выполнить данные процедуры.
Содержание
- Выделение отдельной ячейки
- Выделяем столбец
- Выделяем строку
- Выделяем диапазон ячеек
- Выделяем все ячейки листа
- Горячие клавиши для выделения ячеек
- Заключение
Выделение отдельной ячейки
Пожалуй, это одно из самых простых и базовых действий, выполняемых в Эксель. Чтобы выделить конкретную ячейку щелкаем по ней левой кнопкой мыши.
Чтобы отметить нужную ячейку можно использовать навигационные клавиши на клавиатуре: “вправо”, “влево”, вверх”, “вниз”.
Выделяем столбец
Выделить столбец в Эксель можно несколькими способами:
- Зажав левую кнопку мыши тянем ее указатель от первой ячейки до последней, после чего отпускаем кнопку. Действие можно выполнять как сверху вниз (первая ячейка – самая верхняя, последняя – самая нижняя), так и снизу вверх (первая ячейка – самая нижняя, последняя – самая верхняя).
- Щелкаем по первой ячейке столбца, далее зажав клавишу Shift, кликаем по последней ячейке столбца, после чего отпускаем клавишу Shift. Как и в первом способе, выделение можно выполнять в обе стороны: и вверх, и вниз.
- Также, вместо мыши вместе с Shift мы можем использовать клавиши навигации. Щелкаем по первой ячейке столбца, далее зажимаем Shift, после чего нажимаем клавишу вверх (или вниз в зависимости от того, какую ячейку мы выбрали в качестве первой – самую верхнюю или самую нижнюю) ровно столько раз, сколько ячеек мы хотим добавить в выделяемый диапазон. Одно нажатие на клавишу – одна ячейка. После того, как все нужные элементы отмечены, отпускаем клавишу Shift.
- Кликаем по первой ячейка столбца, после чего нажимаем сочетание клавиш Ctrl+Shif+стрелка вниз. В результате будет выделен весь столбец, охватив все ячейки, в которых есть данные. Если мы хотим выполнить выделение снизу вверх, то соответственно, нажимаем комбинацию Ctrl+Shif+стрелка вверх, предварительно встав в самую нижнюю ячейку.
Тут есть один нюанс. При использовании данного способа нужно убедиться в том, что в отмечаемом столбце нет пустых элементов, иначе выделение будет произведено лишь до первой незаполненной ячейки.
- Когда вместо выделения столбца таблицы нужно отметить весь столбец книги, щелкаем по его обозначению на координатной панели (курсор должен изменить свой привычный вид на стрелку, направленную вниз):
- В случае, когда требуется одновременное выделение нескольких столбцов книги, расположенных подряд, зажав левую кнопку мыши проводим курсором по всем нужным наименованиям столбцов на координатной панели.
- Также для этих целей можно воспользоваться клавишей Shift. Щелкаем по первому столбцу на панели координат, затем, зажав клавишу Shift, кликаем по последнему, после чего отпускаем клавишу.
- В случаях, когда столбцы расположены не подряд, зажав клавишу Ctrl на клавиатуре щелкаем на координатной панели по наименованиям всех нужных столбцов, после чего отпускаем клавишу.
Выделяем строку
По такому же алгоритму производится выделение строк в Excel. Выполнить это можно разными способами:
- Чтобы выделить одну строку в таблице, зажав левую кнопку мыши, проходим по всем нужным ячейкам (слева направо или наоборот), после чего отпускаем кнопку.
- Кликаем по первой ячейки строки, затем, зажав клавишу Shift, щелкаем по последней ячейке, и отпускаем клавишу. Выполнять данную процедуру можно в обе стороны.
- Совместно с клавишей Shift вместо левой кнопки мыши можно использовать клавиши навигации. Кликаем по первой ячейке строки, зажимаем клавишу Shift и жмем клавишу вправо (или влево, в зависимости от того, какую ячейку мы выбрали в качестве первой – самую левую или самую правую). При таком выделении одно нажатие навигационной клавиши равно одной выделенной ячейке. Как только мы выделили все требуемые элементы, можно опускать клавишу Shift.
- Щелкаем по первой ячейке строки, затем жмем сочетание клавиш Ctrl+Shif+стрелка вправо.Таким образом, будет выделена вся строка с охватом всех заполненных ячеек, но с важной оговоркой – выделение будет выполнено до первой пустой ячейки. Если мы хотим выполнить выделение справа налево, следует нажать сочетание клавиш Ctrl+Shif+стрелка влево.
- Чтобы выделить строку не только таблицы, но и всей книги, кликаем по ее порядковому номеру на координатной панели (вид курсора при наведении на панель должен смениться на стрелку, направленную вправо).
- Когда требуется одновременное выделение нескольких соседних строк, зажав левую кнопку мыши проходим на координатной панели по всем требуемым порядковым номерам.
- Когда нужно сразу выделить несколько соседних строк книги, можно использовать клавишу Shift. Для этого кликаем на координатной панели по номеру первой строки, затем зажимаем клавишу Shift, кликаем по последней строке и отпускаем клавишу.
- Когда требуется выделение строк книги, расположенных не по соседству, зажав клавишу Ctrl на клавиатуре, поочередно щелкаем по обозначениям всех нужных строк на координатной панели.
Выделяем диапазон ячеек
В данной процедуре как и в тех, что были описаны ранее, нет ничего сложного, и она также выполняется разными способами:
- Зажав левую кнопку мыши проходим по всем ячейкам требуемой области, двигаясь по диагонали:
- от самой верхней левой ячейки до самой нижней правой
- от самой нижней правой ячейки до самой верхней левой
- от самой верхней правой ячейки до самой нижней левой
- от самой нижней левой ячейки до самой верхней правой
- Зажав клавишу Shift, кликаем по первой, а затем – по последней ячейкам требуемого диапазона. Направления выделения – те же, что и в первом способе.
- Встаем в первую ячейку требуемого диапазона, и зажав клавишу Shift, используем клавиши для навигации на клавиатуре, чтобы “дойти” таким образом до последней ячейки.
- Если нужно одновременно выделить как отдельные ячейки, так и диапазоны, причем, находящиеся не рядом, зажимаем клавишу Ctrl и левой кнопкой мыши выделяем требуемые элементы.
Выделяем все ячейки листа
Чтобы осуществить данную задачу, можно воспользоваться двумя разными способами:
- Щелкаем по небольшому треугольнику, направленному по диагонали вправо вниз, который расположен на пересечении координатных панелей. В результате будут выделены все элементы книги.
- Также можно применить горячие клавиши – Ctrl+A. Однако, тут есть один нюанс. Прежде, чем нажимать данную комбинацию, нужно перейти в любую ячейку за пределами таблицы.
Если же мы будем находиться в пределах таблицы, то нажав на клавиши Ctrl+A, мы сначала выделим все ячейки именно самой таблицы. И только повторное нажатие комбинации приведет к выделению всего листа.
Горячие клавиши для выделения ячеек
Ниже приведен перечень комбинаций (помимо тех, что ранее уже были рассмотрены), пользуясь которыми можно производить выделение элементов в таблице:
- Ctrl+Shift+End – выделение элементов с перемещением в самую первую ячейку листа;
- Ctrl+Shift+Home – выделение элементов с перемещением до последней используемой ячейки;
- Ctrl+End – выделение последней используемой ячейки;
- Ctrl+Home – выделение первой ячейки с данными.
Ознакомиться с более расширенным список комбинаций клавиш вы можете в нашей статье – “Горячие клавиши в Эксель“.
Заключение
Итак, мы разобрали различные способы, пользуясь которыми можно выделить отдельные ячейки таблицы Эксель, а также столбцы, строки, диапазоны элементов и даже целый лист. Каждый из этих способов прекрасно справляется с поставленной задачей, поэтому, пользователь может выбрать тот, который ему больше нравится и кажется наиболее удобным в применении.
Я знаю, что могу выбрать все ячейки в определенном столбце, нажав на дескриптор заголовка столбца (т.е. А или АБ). Но возможно ли затем исключить из него несколько ячеек, например заголовки моей таблицы данных?
пример
Я хотел бы выбрать ячейки данных определенного столбца для установки проверки данных (что в конечном итоге будет отображать выпадающий список значений, определенных в именованном диапазоне). Но я не хочу, чтобы мои ячейки заголовка данных были включены в этот выбор (поэтому они не будут отображать эти выпадающие списки и не будут проверяться). Что если позже я решу изменить параметры проверки этих ячеек?
Как я могу выбрать свою колонку тогда?
Sidenote
Я знаю, что могу установить проверку данных для всего столбца, а затем выбрать только те ячейки, которые я хочу исключить, и очистить их проверку данных. Что я хотел бы знать, так это то, что на первом этапе можно сделать правильный выбор, чтобы избежать второго.
Я попытался щелкнуть дескриптор столбца, чтобы выделить весь столбец, а затем щелкнуть CTRL и щелкнуть те ячейки, которые я не хочу включать в свой выбор, но он не сработал, как ожидалось.