13

Можно выбрать несколько ячеек Excel (либо непрерывно, либо нет) с помощью сочетания клавиш Ctrl+Click.

Как отменить выбор одной или нескольких из ранее выбранных ячеек?

3 ответа3

5

Используя клавиши 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
2

Более надежный способ отмены выбора нескольких ячеек описан в этой статье 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 (который лучше всего подходит для сохранения в вашей личной макро книги и присваивается ярлык) и выберите ячейки , которые будут выбраны в опре всплывающем окне , которое появляется:

Отменить выбор ячеек

1

Теперь можно отменить выбор с помощью CTRL ячейки, выбранной по ошибке. Это новая встроенная функция в Office 365 или последних версиях. В заключение!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .