Border VBA

P

Pete

When I recorded this part of my macro I noticed that all
the option for the Left,Right,Top and Bottom edges of the
cells are the same. Is there a way to combine all these
into one selection to eliminate the repeatitive code.

Range("DCard1:Dcard1a").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle =
xlNone

Thanks
Pete
 
R

Rob Bovey

Hi Pete,

Try this:

Range("DCard1:Dcard1a").BorderAround

--
Rob Bovey, MCSE, MCSD, Excel MVP
Application Professionals
http://www.appspro.com/

* Please post all replies to this newsgroup *
* I delete all unsolicited e-mail responses *
 
S

SOS

Hi Pete,

I remember having the same problem and this sorted it.

Sub Test

Range("DCard1:Dcard1a").Borders.Linestyle = xlContinuous

End Sub

This means that you don't even have to select the range prior t
applying borders.

Regards

Seamu
 
S

SOS

Rob,

I found that when I tried your code of:

Range("DCard1:DCard1a").BorderAround

it didn't do anything to the range and even after adding

(xlContinuous)

to the end of the line it only put a border around the whole selectio
rather than round each cell in the selection.

Am I missing something?

Regards

Seamu
 
B

Bob Phillips

add a weight

Range("DCard1:DCard1a")..Borderaround Weight:=xlThin

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
R

Rob Bovey

Hi Seamus,
I found that when I tried your code of:
Range("DCard1:DCard1a").BorderAround
it didn't do anything to the range and even after adding
(xlContinuous)

Yep, I screwed up. The LineStyle argument is required.
it only put a border around the whole selection
rather than round each cell in the selection.
Am I missing something?

The code in the original post was only surounding the entire range with
a border. If you want every cell within the range to have a border you have
to add two more lines:

With Range("DCard1:DCard1a")
.BorderAround xlContinuous
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideHorizontal).LineStyle = xlContinuous
End With

--
Rob Bovey, MCSE, MCSD, Excel MVP
Application Professionals
http://www.appspro.com/

* Please post all replies to this newsgroup *
* I delete all unsolicited e-mail responses *
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top