View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Harlan Grove Harlan Grove is offline
external usenet poster
 
Posts: 733
Default Getting a subrange of a specified range.

"Alan Beban" wrote...
Or = Range(rng1(2, 2), rng1(5, 4))

Not sure what your 2,2,4,3 is supposed to represent.

....
Frank Kabel wrote:

....
=rng1.offset(1,1).resize(4,3)

....
"y" schrieb im Newsbeitrag

....
I'm looking for a trick like this

Supposing rng1= $A$3:$G$56

rng2=GetSubRng(rng1,2,2,4,3)

rng2 will be equal to $B$4:$D$7


Given rng1 and the intended rng2, one guess for 2,2,4,3 would be something
like =OFFSET(INDEX(rng1,2,2),0,0,4,3), which suggests

Set rng2 = rng1.Cells(2, 2).Resize(4, 3)

which could be implemented as


Function GetSubRange(rng1 As Range, ir As Long, ic As Long, _
nr As Long, nc As Long) As Range

On Error Resume Next
Set GetSubRange = rng1.Cells(ir, ic).Resize(nr, nc)

End Function


which would preserve the OP's argument semantics.