可以使用键盘快捷键Ctrl+Click 选择多个 Excel 单元格(连续或不连续)。
如何取消选择一个或多个先前选择的单元格?
答案1
通过使用 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
(最好将其保存在个人宏书中并分配给快捷方式),然后选择要德在出现的弹出窗口中选择:
答案3
现在可以使用 CTRL 取消选择错误选择的单元格。这是 Office 365 或最新版本中的一项新内置功能。终于!