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 đó?
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:
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
deselect
mộ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ồ!
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 DeselectCells
vĩ 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:
UnSelectActiveCell
nhanh hơn nếu bạn kết hợp theo phạm vi và chỉ lặp qua các ô nếuNot Intersect(Area,ActiveCell) Is Nothing
. Nó có thể không phải là trường hợp nếuIntersect
chức năng chậm hơn nhiều so vớiStrComp
chức năng mà nó không thể bù đắp cho việc giảm các cuộc gọi đếnUnion
.