Hi again :-)
Not well tested... In a junk copy of your wb, try:
Sub DirectBillOnlyIndemnity2Off()
'// Use With to easily qualify each range... //
With ThisWorkbook.Worksheets("Direct Bill ONLY") '<---OR: With Sheet4
'// BEFORE testing, J22 still needed un-merged //
.Range("J22").ClearContents
.Range("J23").ClearContents
.Range("K23").ClearContents
'// ...and you can nest the with for properties of the Range, such as .Borders//
With .Range("H22:K25")
.Borders.LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
End With
With .Range("I24")
.Borders.LineStyle = xlNone
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
End With
End With
End Sub
Your ranges were not being qualified, so success would be dependant upon the sheet being active.
I did not read through all the code, but I do not believe you are deleting any of the sheets. If this is the case, might I make a suggestion? See in the very first With, where I noted that you could use the sheet's CodeName, like:
As long as you are not copying sheets or deleting them, you might consider using their CodeNames, as two things seem benefitted to me leastwise. (1) If the user renames a sheet, the codename still works, and (2) I find it much easier to write code with intellisense helping me out.
Hope that helps,
Mark