PC Review


Reply
Thread Tools Rate Thread

define range using col and row names; not cell name

 
 
cate
Guest
Posts: n/a
 
      27th Feb 2010
How do you set a range using these four names? They define whole rows
and columns. The first column and row, along with the last column and
row, define a range

first_data_col
last_data_col
first_data_row
last_data_row

I can select columns with, as an example:
mySheet.Range(mySheet.Range("first_data_col"),
mySheet.Range("last_data_col")).EntireColumn.Hidden = False

I'm trying to do a sort, but I have to define the range to sort, as
in ws.Range("D7:L25"), but I don't have cell names, I have 4 whole
row and column names ( such as $K:$K, and $4:$4)

I could disassemble these names and build a range with Cell, but isn't
there a better way?
I know this has got to be simple, but I just can’t seem to make it
work.

Thank you.
 
Reply With Quote
 
 
 
 
Per Jessen
Guest
Posts: n/a
 
      27th Feb 2010
Look at this:

FirstCol=mySheet.Range("first_data_Col").Column
LastCol=mySheet.Range("last_data_Col").Column
FirstRow=mySheet.Range("first_data_row").Row
LastRow=mySheet.Range("last_data_row").row

With MySheet
set FilterRange= _
.range(.cells(FirstRow,FirstColumn),.cells(LastRow,LastColumn))
End with

Regards,
Per

On 27 Feb., 16:53, cate <catebekens...@yahoo.com> wrote:
> How do you set a range using these four names? They define whole rows
> and columns. *The first column and row, along with the last column and
> row, define a range
>
> first_data_col
> last_data_col
> first_data_row
> last_data_row
>
> I can select columns with, as an example:
> * * mySheet.Range(mySheet.Range("first_data_col"),
> mySheet.Range("last_data_col")).EntireColumn.Hidden = False
>
> I'm trying to do a sort, but I have to define the range to sort, as
> in * * ws.Range("D7:L25"), but I don't have cell names, I have 4 whole
> row and column names ( such as $K:$K, and $4:$4)
>
> I could disassemble these names and build a range with Cell, but isn't
> there a better way?
> I know this has got to be simple, but I just can’t seem to make it
> work.
>
> Thank you.


 
Reply With Quote
 
Dave Peterson
Guest
Posts: n/a
 
      27th Feb 2010
One way:

Dim myRng as range
dim First_Data_Row as range
dim First_Data_Col as range
Dim Last_Data_Row as range
Dim Last_Data_Col as range

with mySheet
set first_data_row = .range("first_data_row")
set last_data_row = .range("last_data_row")
set first_data_col = .range("first_data_col")
set last_data_col = .range("last_data_col")

set myrng = .range(.cells(first_data_row.row, first_data_col.column), _
.cells(last_data_row.row, last_data_col.column))
end with

You could drop the intermediate ranges and use:

Dim myRng as range
dim First_Data_Row as long
dim First_Data_Col as long
Dim Last_Data_Row as long
Dim Last_Data_Col as long

with mySheet
first_data_row = .range("first_data_row").row
last_data_row = .range("last_data_row").column
first_data_col = .range("first_data_col").row
last_data_col = .range("last_data_col").column

set myrng = .range(.cells(first_data_row, first_data_col), _
.cells(last_data_row, last_data_col))
end with

I like the first--If I want to use those ranges for anything else, I have them
available.

I like this syntax for the sort. I find it easier to understand and reuse:

with myrng
.cells.sort _
Key1:=.Columns(1), Order1:=xlAscending, _
key2:=.columns(3), order2:=xldescending, _
Header:=xlno, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
end with

I don't have to worry about where that range is actually located on the sheet.
(I do have to worry if the number of columns is ok <bg>.)



cate wrote:
>
> How do you set a range using these four names? They define whole rows
> and columns. The first column and row, along with the last column and
> row, define a range
>
> first_data_col
> last_data_col
> first_data_row
> last_data_row
>
> I can select columns with, as an example:
> mySheet.Range(mySheet.Range("first_data_col"),
> mySheet.Range("last_data_col")).EntireColumn.Hidden = False
>
> I'm trying to do a sort, but I have to define the range to sort, as
> in ws.Range("D7:L25"), but I don't have cell names, I have 4 whole
> row and column names ( such as $K:$K, and $4:$4)
>
> I could disassemble these names and build a range with Cell, but isn't
> there a better way?
> I know this has got to be simple, but I just can’t seem to make it
> work.
>
> Thank you.


--

Dave Peterson
 
Reply With Quote
 
cate
Guest
Posts: n/a
 
      27th Feb 2010
Thanks all!
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

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


Similar Threads
Thread Thread Starter Forum Replies Last Post
Define Range Names in Excel 2003-SP2 Ian Microsoft Excel Misc 1 27th Oct 2009 06:48 PM
Define range by last cell in column? AUCP03 Microsoft Excel Programming 3 28th Aug 2009 07:41 PM
Re: Macro to define range names jaf Microsoft Excel Programming 0 25th May 2009 01:17 PM
RE: Macro to define range names john Microsoft Excel Programming 0 12th May 2009 09:28 PM
how to define range names =?Utf-8?B?YW50b24=?= Microsoft Excel New Users 1 14th Oct 2005 08:28 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 02:00 PM.