Try this,
Sub shortestcolumnforborders()
lr = Cells.Find("*", Cells(Rows.Count, _
Columns.Count), , , xlByRows, xlPrevious).Row
'MsgBox lr
For i = 1 To 16
clr = Cells(Rows.Count, i).End(xlUp).Row
'MsgBox clr
If clr < lr Then lr = clr
Next i
Cells(1, 1).Resize(lr, 16). _
Borders.LineStyle = xlContinuous
'MsgBox lr 'minrow
End Sub
--
Don Guillett
Microsoft MVP Excel
SalesAid Software
(E-Mail Removed)
"Sal" <(E-Mail Removed)> wrote in message
news:566ED49B-2F51-4FB5-9F22-(E-Mail Removed)...
> This Macro creates borders around Columns A:O. It stops creating borders
> at
> the last row in Colum O that has contents. Can I get help changing it so
> that it stops creating borders at the last row that has contents in Column
> A
> or Column B or Column C or Column D or Column E or Column F or Column G or
> Column H or Column I or Column J or Column K or Column L or Column M or
> Column N or Column O?
>
> Sub Border ()
> With Range("A1:O" & Range("O" & Rows.Count).End(xlUp).Row)
> .Borders(xlDiagonalDown).LineStyle = xlNone
> .Borders(xlDiagonalUp).LineStyle = xlNone
> With .Borders(xlEdgeLeft)
> .LineStyle = xlContinuous
> .Weight = xlMedium
> .ColorIndex = xlAutomatic
> End With
> With .Borders(xlEdgeTop)
> .LineStyle = xlContinuous
> .Weight = xlMedium
> .ColorIndex = xlAutomatic
> End With
> With .Borders(xlEdgeBottom)
> .LineStyle = xlContinuous
> .Weight = xlMedium
> .ColorIndex = xlAutomatic
> End With
> With .Borders(xlEdgeRight)
> .LineStyle = xlContinuous
> .Weight = xlMedium
> .ColorIndex = xlAutomatic
> End With
> With .Borders(xlInsideVertical)
> .LineStyle = xlContinuous
> .Weight = xlMedium
> .ColorIndex = xlAutomatic
> End With
> With .Borders(xlInsideHorizontal)
> .LineStyle = xlContinuous
> .Weight = xlMedium
> .ColorIndex = xlAutomatic
> End With
> End With
> End Sub
>
>