ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Selection in a range. (https://www.excelbanter.com/excel-programming/416684-selection-range.html)

ML

Selection in a range.
 
Hi

I am extremely new to Excel programming (this morning) and have had some
macro designs thrust upon me.

I am trying to select rows 1 & 2 of a previous selection (to effectively
format the header rows in table).

I have made it work where the table is 3 columns using:

Selection.Range("A1:C2").Select

but I need to make it work for tables more than 3 colums, the tables could
be any size and anywhere on a worksheet. So I tried:

Selection.Range("1:2").Select

but this didn't work.

Any suggestions?



Ron Rosenfeld

Selection in a range.
 
On Mon, 8 Sep 2008 05:00:01 -0700, ML wrote:

Hi

I am extremely new to Excel programming (this morning) and have had some
macro designs thrust upon me.

I am trying to select rows 1 & 2 of a previous selection (to effectively
format the header rows in table).

I have made it work where the table is 3 columns using:

Selection.Range("A1:C2").Select

but I need to make it work for tables more than 3 colums, the tables could
be any size and anywhere on a worksheet. So I tried:

Selection.Range("1:2").Select

but this didn't work.

Any suggestions?


First of all, and importantly, there is no need to "select" the cells within
VBA in order to format them. It is more efficient to just address the cells
directly.

One way to set a variable so as to refer to the first two rows in a previous
selection:

------------------------
Dim c As Range
Set c = Selection
Set c = c.Resize(2)
------------------------

If all the cells are being formatted the same, then perhaps something like:

----------------------
With c
.NumberFormat = "@"
.Font.Bold = True
.Font.Italic = True
.Font.Size = 16
End With
------------------------

--ron

ML

Selection in a range.
 
This has solved it.

Many thanks.


"Ron Rosenfeld" wrote:

On Mon, 8 Sep 2008 05:00:01 -0700, ML wrote:

Hi

I am extremely new to Excel programming (this morning) and have had some
macro designs thrust upon me.

I am trying to select rows 1 & 2 of a previous selection (to effectively
format the header rows in table).

I have made it work where the table is 3 columns using:

Selection.Range("A1:C2").Select

but I need to make it work for tables more than 3 colums, the tables could
be any size and anywhere on a worksheet. So I tried:

Selection.Range("1:2").Select

but this didn't work.

Any suggestions?


First of all, and importantly, there is no need to "select" the cells within
VBA in order to format them. It is more efficient to just address the cells
directly.

One way to set a variable so as to refer to the first two rows in a previous
selection:

------------------------
Dim c As Range
Set c = Selection
Set c = c.Resize(2)
------------------------

If all the cells are being formatted the same, then perhaps something like:

----------------------
With c
.NumberFormat = "@"
.Font.Bold = True
.Font.Italic = True
.Font.Size = 16
End With
------------------------

--ron


Ron Rosenfeld

Selection in a range.
 
On Mon, 8 Sep 2008 05:38:00 -0700, ML wrote:

This has solved it.

Many thanks.


Glad to help.

Thanks for the feedback.
--ron


All times are GMT +1. The time now is 01:29 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com