If the starting range always consists of contiguous cells in one row only, then it can be done without a loop.
For example :-
Dim rng As Range, col%, rw%, col1%, col2%
Dim newRng As Range
Set rng = [G3:O3]
col = 13
If Intersect(Columns(col), rng) Is Nothing Then Exit Sub
rw = rng.Row
col1 = rng(1, 1).Column
col2 = rng.Columns.Count + col1 - 1
If col = col1 Then
Set newRng = rng.Offset(0, 1).Resize(, col2 - col1)
ElseIf col = col2 Then
Set newRng = rng.Resize(, col2 - col1)
Else
Set newRng = Union(Range(rng(1, 1), Cells(rw, col - 1)), Range(Cells(rw, col + 1), Cells(rw, col2)))
End If
This message was edited by N. Parker, jnr on 2002-08-23 01:23