Resize Range - Macro
It worked perfectly. Thank you for the notes too! I don't have to do Trial &
Error.
Have a great weekend.
"Dave Peterson" wrote:
Say your data in in A1:D9.
Then you can use the offset to "move" the range right or left:
Set tbl = Range("a1").CurrentRegion
tbl.Offset(1, 3).Resize(tbl.Rows.Count - 1, _
tbl.Columns.Count - 3).Select
This would select D2:D9 (moved over 3 columns and resized the number of columns
to avoid those first 3 columns).
When you're playing with this kind of stuff, you can set up a very small test
subroutine to do this--then swap back to excel to see if it selected what you
wanted.
ps. in .offset(x,y), both x and y can be positive, negative, or 0.
Danny wrote:
Hi Dave,
Thanks for your reply. The macro below is what I am looking for. Its from
the excel help menu. I was able to add/exclude rows above and bellow and
add/exclude columns to the RIGHT by changing the numbers by TRIAL & ERROR.
However, I can't figure out how to EXCLUDE columns on the LEFT. Please show
me how. Thanks. Have a great weekend!
This example assumes that you have a table on Sheet1 that has a header row.
The example selects the table, without selecting the header row. The active
cell must be somewhere in the table before you run the example.
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, _
tbl.Columns.Count).Select
"Dave Peterson" wrote:
You want to resize it based on the xldown???
dim myRng as range
dim myRows as long
set myrng = range("myRange")
myrows = myrng.end(xldown).row - myrng.row + 1
myrng.resize(myrows,10).select
maybe??????????
Danny wrote:
I'm sorry to confuse everybody. What I'm looking for is:
run a macro to find a name(cell), then
on this active cell, the macro would resize/highlight the rows and columns
below, then
I can add another macro to either copy, format the highligted rows, columns,
insert a rows, etc.
So, how can one write a macro to make the number of rows "3" to be variable.
ActiveCell.Resize(3, 10).Select
I am looking for a macro like this but the way end.xlDown is written below
won't work!
ActiveCell.Resize(end.xlDown, 10).Select
Thanks a lot
"Dave Peterson" wrote:
I'm confused as the others, but maybe....
Dim myRng as range
with activesheet
set myrng = .range("myRange")
'this doesn't make much sense to me
'but it shows how to find the number of rows/columns in myrng
myrng.resize(myrng.rows.count,myrng.columns.count) .select
'or
'make it 10 columns wide
myrng.resize(myrng.rows.count,10).select
'which would be equivalent to:
myrng.resize(,10).select
end with
(if you specify the rows/columns to resize, then it won't be changed.)
Closer???
????? wrote:
Hi Sam,
Thanks again for your response.
Actually, what I'm looking for is how to write a macro for the variable
(xlDown)of "3" (rows) on the macro below
ActiveCell.Resize(3, 10).Select
I need this macro for a lot of things because I name a range to go to, use
the REVISED macro above, then, I can use it for a lot of things, like copy,
put borders, insert rows, etc. I have been trying to get the right macro for
this.
Thanks again.
"Sam" wrote:
? so if i understand, you want to look at the current selection, and copy
? an area 10 columns across and n rows down (n= number of used rows under
? the selection) and past in a range called 'otherrange'?:
?
? Range(ActiveCell.Range("a1"), ActiveCell.End(xlDown).Offset(0,
? 10)).Copy Range("otherrange")
?
?
--
Dave Peterson
--
Dave Peterson
--
Dave Peterson
|