Если вы устанавливаете диапазон, вам нужна команда SET
, и вы не должны .Select
при установке:
rng = Range("A1", ActiveCell.SpecialCells(xlLastCell)).Select
становится:
Set rng = Range("A1", ActiveCell.SpecialCells(xlLastCell))
Также, при округлении вы указали отрицательное значение.
cell.Value = Round(cell.Value, -2)
Становится:
cell.Value = Round(cell.Value, 2)
Таким образом, код заканчивается так:
Sub roundthissheet()
Dim cell As Range, rng As Range
Set rng = Range("A1", ActiveCell.SpecialCells(xlLastCell))
For Each cell In rng.Cells
If cell.Value <> "" And IsNumeric(cell.Value) Then
cell.Value = Round(cell.Value, 2)
End If
Next cell
End Sub