Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 20
Default Assign range to variable for sort

I am trying to do a unique sort to another location and I recorded this code.

Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range("A2:A69").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"AA1"), Unique:=True

The next time there might be more than sixty-seven rows of data, so I did
this, which does not work.

Dim TargetArea as Range
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Set TargetArea = Selection.ActiveCell
Range([TargetArea]).... the rest of the sort code

How does one grab a range of cells, assign it to a variable, and refer to it
further down in the code? If this is not the proper way to do it, please feel
free to let me know. And thanks in advance for any help on this.

--
Michael Conroy
Stamford, CT
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,510
Default Assign range to variable for sort

Hi Michael,

My first question is why start from A2? If you do not include the column
header in an Advanced filter/copy/unique then the first value is used as the
header in the output and you will actually see 2 elements the same. The
header and it will be repeated further down your list.

Having said that, is there any reason you cannot use the column for the
Advance filter range?

Example: (Note use of Columns in lieu of Range.)

Columns("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"AA1"), Unique:=True

If you start getting errors when the code is changed because the header is
incorrect then delete all of the data in the Copy To range and also maybe the
Defined name 'Extract'. (Look up defined names in Help if you don't know how
to do this.)

--
Regards,

OssieMac


"Michael Conroy" wrote:

I am trying to do a unique sort to another location and I recorded this code.

Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range("A2:A69").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
"AA1"), Unique:=True

The next time there might be more than sixty-seven rows of data, so I did
this, which does not work.

Dim TargetArea as Range
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Set TargetArea = Selection.ActiveCell
Range([TargetArea]).... the rest of the sort code

How does one grab a range of cells, assign it to a variable, and refer to it
further down in the code? If this is not the proper way to do it, please feel
free to let me know. And thanks in advance for any help on this.

--
Michael Conroy
Stamford, CT

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,510
Default Assign range to variable for sort

Hello again Michael,

Another thing you should do when using Advanced filter with code is to clear
the old extracted data before re-running the code. If you don't do this
before you re-run the code and there are actually less elements in the
extracted data there was previously then you will still have extra data at
the bottom of the list from the previous run.

Because Excel creates a Defined name "Extract" for the position of the
column header of the extracted range, you can use it to identify the range to
be cleared.

Example: (Insert immediately before the advanced filter code line)
Range("Extract", Range("Extract").End(xlDown)).ClearContents

Note: You cannot insert that line in your code until after the advanced
filter has been run at least once.

--
Regards,

OssieMac


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
assign variable to a range Alberto Ast[_2_] Excel Programming 1 October 23rd 09 03:01 AM
Assign copied range to a variable johnmasvou Excel Programming 3 March 20th 09 10:44 AM
VBA Excel how to assign name in variable range Mouimet Excel Programming 4 November 14th 08 05:56 PM
range variable won't assign (chartobject.topleftcell property) Matthew Dodds Excel Programming 2 November 16th 05 02:25 PM
How to assign a variable in a range select Paul Excel Programming 5 June 3rd 05 11:50 PM


All times are GMT +1. The time now is 09:25 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"