Làm cách nào để bỏ chọn Excel Cell bằng Phím tắt?


14

Người ta có thể chọn nhiều ô Excel (liền kề hoặc không) bằng phím tắt Ctrl+ Nhấp chuột.

Làm thế nào để bạn bỏ chọn một hoặc nhiều trong số các ô được chọn trước đó?

Câu trả lời:


5

Bằng cách sử dụng các phím Shift và / hoặc các phím CTRL, bạn có thể chọn các phạm vi không liền kề. Tuy nhiên, nếu bạn chọn một ô hoặc khu vực do nhầm lẫn, không có cách nào được xây dựng để loại bỏ nó khỏi vùng chọn mà không làm mất toàn bộ lựa chọn và phải bắt đầu lại. Trang này mô tả các quy trình VBA, UnSelectActiveCell và UnSelectCienArea sẽ loại bỏ Active Cell hoặc Khu vực chứa Active Cell khỏi lựa chọn hiện tại. Tất cả các ô khác trong Lựa chọn sẽ vẫn được chọn.

Đặt cược tốt nhất của bạn sẽ là thêm chúng vào sổ làm việc Macro cá nhân của bạn để chúng có sẵn cho tất cả các sổ làm việc đang mở trong Excel.

Quy trình này sẽ xóa Active Cell khỏi Vùng chọn .

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

Quy trình này sẽ xóa Vùng chứa Active Cell khỏi Vùng chọn.

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

1
Tôi tự hỏi nếu bạn có thể thực hiện UnSelectActiveCellnhanh hơn nếu bạn kết hợp theo phạm vi và chỉ lặp qua các ô nếu Not Intersect(Area,ActiveCell) Is Nothing. Nó có thể không phải là trường hợp nếu Intersectchức năng chậm hơn nhiều so với StrCompchức năng mà nó không thể bù đắp cho việc giảm các cuộc gọi đến Union.
Kỹ sư Toast

1
Thần excel quá già lol
codyc4321

đây vẫn là trường hợp? Tôi không thể cho cuộc sống của tôi tìm ra làm thế nào để deselectmột tế bào. Nó hoàn toàn vô lý! Tôi đang chọn mỗi cột thứ 2 và nếu tôi mắc lỗi, tôi phải bắt đầu lại? Đó là% & * ing điên rồ!
pookie

2

Một cách mạnh mẽ hơn để bỏ chọn nhiều ô được mô tả trong bài viết ExtendScript này . Nó bao gồm một dấu nhắc thêm, nhưng bạn có thể bỏ chọn một số lượng ô / lựa chọn tùy ý cùng một lúc (thay vì chỉ bỏ chọn ô hoặc vùng hoạt động)

Tôi đang đăng tập lệnh ở đây, với một cải tiến khả năng sử dụng nhỏ (đã xóa điều kiện lời nhắc đầu tiên dư thừa khỏi bài đăng gốc):

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

Để sử dụng nó, bạn thực hiện một lựa chọn, gọi DeselectCellsvĩ mô (đó là tốt nhất để được cứu trong cuốn sách vĩ mô cá nhân của bạn và được gán cho một phím tắt) và chọn các ô cần de chọn trong popup xuất hiện:

Bỏ chọn các ô


Tìm thấy tốt đẹp, câu trả lời tuyệt vời.
Burgi

1

Bây giờ có thể bỏ chọn với CTRL một ô được chọn do nhầm lẫn. Đây là một chức năng tích hợp mới trong Office 365 hoặc các phiên bản gần đây. Cuối cùng!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.