I am trying a border using VBA in excel but am getting object required error. Kindly help me to fix
I am trying a border using VBA in excel but am getting object required error. Kindly help me to fix
Without seeing your code and knowing what kind of borders you want, it's hard to say
The first is the macro recorder, the second is some cleanup
Option Explicit Sub Macro1() ' ' Macro1 Macro ' ' Range("A1:D12").Select Selection.Borders(xlDiagonalDown).LineStyle = xlNone Selection.Borders(xlDiagonalUp).LineStyle = xlNone With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With Selection.Borders(xlInsideVertical).LineStyle = xlNone Selection.Borders(xlInsideHorizontal).LineStyle = xlNone End Sub Sub Macro2() With Range("A1:D12") .Borders(xlDiagonalDown).LineStyle = xlNone .Borders(xlDiagonalUp).LineStyle = xlNone With .Borders .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With .Borders(xlInsideVertical).LineStyle = xlNone .Borders(xlInsideHorizontal).LineStyle = xlNone End With End Sub
---------------------------------------------------------------------------------------------------------------------
Paul
Remember: Tell us WHAT you want to do, not HOW you think you want to do it
1. Use [CODE] ....[/CODE ] Tags for readability
[CODE]PasteYourCodeHere[/CODE ] -- (or paste your code, select it, click [#] button)
2. Upload an example
Go Advanced / Attachments - Manage Attachments / Add Files / Select Files / Select the file(s) / Upload Files / Done
3. Mark the thread as [Solved] when you have an answer
Thread Tools (on the top right corner, above the first message)
4. Read the Forum FAQ, especially the part about cross-posting in other forums
http://www.vbaexpress.com/forum/faq...._new_faq_item3
Sub ApplyDynamicBorder() Dim ws As Worksheet Dim lastRow As Long Dim lastCol As Long Dim tableRange As Range ' Set the worksheet Set ws = ThisWorkbook.Sheets("Sheet1") ' Find the last row with data in column A lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Find the last column with data in row 1 lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' Define the range of the table Set tableRange = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol)) ' Apply borders to the table range With tableRange.Borders .LineStyle = xlContinuous .Weight = xlThin .ColorIndex = 0 End With End Sub
Last edited by Aussiebear; 09-25-2024 at 01:30 PM. Reason: Added code tags to supplied code
I am using above code but am getting object required error and I am trying here to create dynamic border based on the data changes in source file
I get no error with your ApplyDynamicBorder code!
It gives a thin black border around every cell in the table.
Is that what you want?
Paul's suggestion was to put a border around the whole range (table) and no borders around each cell. If that's your preference then your section ' Apply borders to the table range might be reduceable to one line:
however, you might want a bit more control, eg. a medium thickness green continuous border:tableRange.BorderAround 1
More info:tableRange.BorderAround LineStyle:=xlContinuous, Weight:=xlMedium, Color:=RGB(143, 219, 41)
https://learn.microsoft.com/en-us/of...e.borderaround
p45cal
Everyone: If I've helped and you can't be bothered to acknowledge it, I can't be bothered to look at further posts from you.
Yes you are right. But am getting object required error while running that code. Could you please me anything I am missing over there
It is worked now. Thanks for your help