dynamic range without using OFFSET()

  • Thread starter Thread starter Andrew
  • Start date Start date
A

Andrew

I've seen a number of posts which use the OFFSET() function to create
a dynamic range. This is neat but I thought I could do it better by
using my own function (see below). However, I seem to be unable to
plot this range on a chart in the same way that I could plot a dyn.
range creating using the OFFSET function. Does anyone know why this
is or whether there is a work-around?

Thanks,
Andrew


Public Function DYNRANGEV(FirstCell As Range) As Range
Set DYNRANGEV = FirstCell.Parent.Range(FirstCell.Address & ":" & _
FirstCell.End(xlDown).Address)
End Function
 
I think you are geting confused by a dynamic range as set up in an
Excel Worksheet and that set up in VB code. The former is a *string*
preceded by an '=', and can only use worksheet functions. It will not
recognise .End().

Your function can only be used within VB. Here is a way of resetting
the range using VB based on your requirement :-

'--------------------------------------
Sub ChangeNamedRange()
Dim RangeFormula As String
Dim RangeName As String
'----------------------
RangeName = "TestRange"
RangeFormula = "='" & ActiveSheet.Name & "'!" _
& ActiveCell.Address & ":" _
& ActiveCell.End(xlDown).Address
'- add name to collection
ActiveWorkbook.Names.Add Name:=RangeName, RefersTo:=RangeFormula
'- test
ActiveSheet.Range(RangeName).Select
End Sub
'--------------------------------------


Regards
BrianB
==================================



Regards
BrianB
=============================
 
Back
Top