The most conventional way would be to loop over your cells:
Sub Replacing()
Dim lr As Long, lc As Long
Dim rng As Range, cl As Range
With Worksheets("Sheet1")
'Find Last Row and Column
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
lc = .Cells(1, .Columns.Count).End(xlToLeft).Column
'Go through range
Set rng = .Range(.Cells(1, lc), .Cells(lr, lc))
For Each cl In rng
If Right(cl.Value, 1) = "," Then cl.Value = Left(cl.Value, Len(cl.Value) - 1)
Next cl
End With
End Sub
Better would be to go through memory if your range is actually much larger (for performance sake)
Sub Replacing()
Dim lr As Long, lc As Long, x As Long
Dim arr As Variant
With Worksheets("Sheet1")
'Find Last Row and Column
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
lc = .Cells(1, .Columns.Count).End(xlToLeft).Column
'Go through array
arr = .Range(.Cells(1, lc), .Cells(lr, lc)).Value
For x = LBound(arr) To UBound(arr)
If Right(arr(x, 1), 1) = "," Then arr(x, 1) = Left(arr(x, 1), Len(arr(x, 1)) - 1)
Next x
'Write array back to range
.Range(.Cells(1, lc), .Cells(lr, lc)).Value = arr
End With
End Sub
And a more less conventional way (alright for small ranges I guess) would be to evalate a range and avoid an iteration. This however comes at the cost of an array formula:
Sub Replacing()
Dim lr As Long, lc As Long
Dim rng As Range
With Worksheets("Sheet1")
'Find Last Row and Column
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
lc = .Cells(1, .Columns.Count).End(xlToLeft).Column
'Evaluate your range
Set rng = .Range(.Cells(1, lc), .Cells(lr, lc))
rng.Value = .Evaluate("IF(RIGHT(" & rng.Address & ",1)="","",LEFT(" & rng.Address & ",LEN(" & rng.Address & ")-1)," & rng.Address & ")")
End With
End Sub