Let's say that you've selected a large range of cells, such as A7:R182. You want to perform some sort of operation on all the cells in this range, except a few. You might wonder how to remove a couple of cells within the range from the selection set, so you hold down the Ctrl key as you click on those cells. That doesn't work; Excel simply unselects the range you previously selected.
There is no way to change this behavior within Excel itself. Instead, you need to turn to other solutions. One is to use a macro, such as the following:
Sub UnSelectSomeCells() Dim rSelect As Range Dim rUnSelect As Range Dim rNew As Range Dim rCell As Range Set rSelect = Selection Set rUnSelect = Application.InputBox( _ "What cells do you want to exclude?", Type:=8) For Each rCell In rSelect If Intersect(rCell, rUnSelect) Is Nothing Then If rNew Is Nothing Then Set rNew = rCell Else Set rNew = Union(rNew, rCell) End If End If Next rNew.Select Set rCell = Nothing Set rSelect = Nothing Set rUnSelect = Nothing Set rNew = Nothing End Sub
To use the macro, select the entire range you want to start with, such as A7:R182. Then run the macro. You are asked to choose the cells to be unselected. You can do so by simply selecting the cells with the mouse, holding down the Shift key as you click on each one. When you dismiss the input box, the selection you started with is modified to exclude the cells you selected.
If you prefer to not use your own macros, you can find help for deselecting cells in a selected range by using third-party tools, such as the ASAP Utilities. You can find their Excel tools at this Web page:
http://www.asap-utilities.com/asap-utilities-excel-tools.php
The tool applicable to this tip is the Select tool.
Note:
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (12457) applies to Microsoft Excel 2007 and 2010. You can find a version of this tip for the older menu interface of Excel here: Removing Cells from a Selected Range.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
If a word contains a special character within it, Excel actually thinks the single word is two words. This tip examines ...
Discover MoreWant to select all the data in a contiguous section of a worksheet? The shortcut discussed in this tip makes it very easy.
Discover MoreWant a quick way to enter a series of single digits into consecutive cells? The best approach is with a macro, and this ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2020-01-02 09:59:30
Philip
This works in Excel on Mac and has worked since the dawn of time (i.e. when fist version of Excel was designed ... for Mac)
2020-01-02 07:20:33
JMJ
Thanks to Allen and Willy, this is very useful!
2020-01-02 03:57:15
Russell Stainer
In the latest releases of Office365, you can now select a range of cells, and then unselect individual cells whilst holding the Ctrl key down.
The aggregated values in the footer of Excel change correctly, and you can perform operations on just the selected cells, like you would wish to (I only tried Bold and Centre, but they worked fine).
Russ
2014-08-11 11:05:21
Willy Vanhaelen
This is a very useful macro although it has a bug. When the input box is displayed and you click cancel you get an error. This can be fixed with: On Error GoTo ...
I like my macros always to be as compact as possible. So the three lines,
Dim rSelect As Range
Set rSelect = Selection
For Each rCell In rSelect
can be replaced with this one line:
For Each rCell in Selection
Two line less. Also, although setting the variables to Nothing at the end of the macro does no harm, it is pointless because when the macro ends, its variables are cleared automatically. Again four lines less.
Here is my compact version with the bug fixed:
Sub UnSelectSomeCells()
Dim rUnSelect As Range, rNew As Range, rCell As Range
On Error GoTo Canceled
Set rUnSelect = Application.InputBox("Cells to exclude...", Type:=8)
For Each rCell In Selection
If Intersect(rCell, rUnSelect) Is Nothing Then
If rNew Is Nothing Then Set rNew = rCell Else Set rNew = Union(rNew, rCell)
End If
Next
rNew.Select
Canceled:
End Sub
2014-08-11 11:02:28
Willy Vanhaelen
@Hanspeter: I tried it and functions do respond to the new range.
Make sure your user defined functions are in a module and recalculation is set to automatic.
2014-08-08 13:16:58
Hanspeter
The above macro runs on Excel 2010, and the selected (and deselected) cells are marked out on the worksheet, but I can't find a way to actually get the new range to be used in a function. Hints?
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2021 Sharon Parq Associates, Inc.
Comments