I'm no fan of UsedRange in most instances. If you were to create a Function to be used over and over by your other macros, I would lean toward this syntax which finds the last column with an actual value in it.
Private Function LastCOL(ws As Worksheet) As Long
With ws
LastCOL = .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End With
End Function
Private Function LastROW(ws As Worksheet) As Long
With ws
LastROW = .Cells.Find("*", .Cells(.Rows.Count, .Columns.Count), _
SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Row
End With
End Function
Then your other macros can call it by simply feeding the macro a sheet reference:
Sub RowTest()
On Error Resume Next 'in case the sheet is empty
LR = LastROW(ActiveSheet)
Debug.Print LR
End Sub