additional thoughts
1. error checking to make sure a cell is selected (and not a shape or something else)
2. handles more than one cell selected
3. allows any cell in the ranges in the array to be selected (bigger target)
not tested with real data
Option Explicit
'assume the Ranges are set, and you're not storing the addresses
Dim myRange(1 To 3) As Range
Private Sub btnRemoveRange_Click()
Dim rSelectedCell As Range, rMarker As Range
Dim i As Integer, marker As Integer
'in case a shape of something other than a Range is selected
If Not TypeOf Selection Is Range Then Exit Sub
Set rMarker = Nothing
'if more than one cell is selected, use the top, left
Set rSelectedCell = Selection.Cells(1, 1)
'loop thru the array of Range objects
For i = LBound(myRange) To UBound(myRange)
'if Nothing, then try the next one
If myRange(i) Is Nothing Then GoTo GetNext
'if the top left is not in the intersection
If Intersect(rSelectedCell, myRange(i)) Is Nothing Then GoTo GetNext
'remember this one, 'clear it' and get out
Set rMarker = myRange(i)
Set myRange(i) = Nothing
Exit For
GetNext:
Next 'I
'if we did not find an intersection, make a message
If rMarker Is Nothing Then
MsgBox "You have not selected the a cell in a range in order to mark it for removal.", vbExclamation + vbOKOnly
'if we did, then clear the range
Else
With rMarker
.Clear
.Borders.ColorIndex = xlColorIndexNone
.Borders.LineStyle = xlLineStyleNone
End With
End If
End Sub
Paul