Можно выбрать несколько ячеек Excel (либо непрерывно, либо нет) с помощью сочетания клавиш Ctrl+Click.
Как отменить выбор одной или нескольких из ранее выбранных ячеек?
Можно выбрать несколько ячеек Excel (либо непрерывно, либо нет) с помощью сочетания клавиш Ctrl+Click.
Как отменить выбор одной или нескольких из ранее выбранных ячеек?
Используя клавиши SHIFT и / или клавиши CTRL, вы можете выбрать несмежные диапазоны. Однако, если вы выберете ячейку или область по ошибке, не существует встроенного способа удалить ее из выделения без потери всего выделения и необходимости начинать все сначала. На этой странице описаны процедуры VBA, UnSelectActiveCell и UnSelectCurrentArea, которые удаляют активную ячейку или область, содержащую активную ячейку, из текущего выбора. Все остальные ячейки в выделении останутся выделенными.
Лучше всего добавить их в свою личную книгу макросов, чтобы они были доступны для всех открытых рабочих книг в Excel.
Эта процедура удалит активную ячейку из выбора.
Sub UnSelectActiveCell()
Dim R As Range
Dim RR As Range
For Each R In Selection.Cells
If StrComp(R.Address, ActiveCell.Address, vbBinaryCompare) <> 0 Then
If RR Is Nothing Then
Set RR = R
Else
Set RR = Application.Union(RR, R)
End If
End If
Next R
If Not RR Is Nothing Then
RR.Select
End If
End Sub
Эта процедура удалит область, содержащую активную ячейку, из выбора.
Sub UnSelectCurrentArea()
Dim Area As Range
Dim RR As Range
For Each Area In Selection.Areas
If Application.Intersect(Area, ActiveCell) Is Nothing Then
If RR Is Nothing Then
Set RR = Area
Else
Set RR = Application.Union(RR, Area)
End If
End If
Next Area
If Not RR Is Nothing Then
RR.Select
End If
End Sub
Более надежный способ отмены выбора нескольких ячеек описан в этой статье ExtendOffice. Он включает дополнительную подсказку, но вы можете отменить выбор произвольного числа ячеек / выделений одновременно (вместо того, чтобы отменить выбор только активной ячейки или области)
Я публикую скрипт здесь с небольшим улучшением юзабилити (условно убрал лишнее первое приглашение из исходного поста):
Sub DeselectCells()
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim result As Range
xTitleId = "Deselect Cells"
Set InputRng = Application.Selection
If InputRng.Count <= 1 Then
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
End If
Set DeleteRng = Application.InputBox("Delete Range", xTitleId, Type:=8)
For Each rng In InputRng
If Application.Intersect(rng, DeleteRng) Is Nothing Then
If result Is Nothing Then
Set result = rng
Else
Set result = Application.Union(result, rng)
End If
End If
Next
result.Select
End Sub
Для того, чтобы использовать его, вы делаете выбор, вызовите макрос DeselectCells
(который лучше всего подходит для сохранения в вашей личной макро книги и присваивается ярлык) и выберите ячейки , которые будут выбраны в опре всплывающем окне , которое появляется:
Теперь можно отменить выбор с помощью CTRL ячейки, выбранной по ошибке. Это новая встроенная функция в Office 365 или последних версиях. В заключение!