Do I need these lines?

G

Greg Snidow

Greetings all. I recorded some putting a bold line around a range, and I am
using it for around 20 or so ranges in a macro. The recorded lines are
below...


With CurrentRange
' .Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlMedium
' .Borders(xlEdgeLeft).ColorIndex = xlAutomatic
' .Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlMedium
' .Borders(xlEdgeTop).ColorIndex = xlAutomatic
' .Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlMedium
' .Borders(xlEdgeBottom).ColorIndex = xlAutomatic
' .Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlMedium
' .Borders(xlEdgeRight).ColorIndex = xlAutomatic
End With

My question is, with this having to be in my macro so many times, I am
trying to shrink it down some. I commented out all but the .weight lines,
and for all appearances, the borders look the same with or without the
commented out lines running. I am using XL 2007. What could potentially go
wrong if I do not include them in the macro? Thank you.

Greg
 
O

OssieMac

Hi Greg,

No you do not need the superfluous lines. As a little added information you
can set a range to a union of multiple ranges like the following and add the
borders to each of the ranges in the union.

Note that a space and underscore at the end of a line is a line break in an
otherwise single line of code.


Dim currentRange As Range

Set currentRange = Union(Range("B2:D5"), _
Range("B11:D15"), _
Range("B21:D25"))

With currentRange
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeTop).Weight = xlMedium
.Borders(xlEdgeBottom).Weight = xlMedium
.Borders(xlEdgeRight).Weight = xlMedium
End With
 
F

FSt1

hi
all of the lines in your code are setting the parameters of A cell (range).
IF the parameters of the cell (range) are ALREADY set to the parameters, then
you don't need to include these lines. why set something that is already set?
you need only to include the lines that accually change something...cell or
range.
vague advice maybe but...in a way....very to the point.
why set something that is already set?????? why have code to change
something if nothing is being changed????

regards
FSt1
 
G

Greg Snidow

I had no idea about joining ranges like that, thanks for the tip. I've never
seen that.

Greg
 
S

Sam Wilson

As an extra line-saver:

set CurrentRange = Union(...)
currentrange.borderaround weight:=xlmedium

Sam
 

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