Public Function RoundF(Number, Optional NumOfDigits As Long) As Double
If Not IsNumeric(Number) Then Exit Function
Dim iPos As Long
iPos = InStr(Number, ".")
Dim dbDesimalPart As Long
Dim dbRoundPart As Long
If iPos > 0 Then
dbDesimalPart = Mid(Number, iPos + 1)
End If
If NumOfDigits < Len(CStr(dbDesimalPart)) Then
dbRoundPart = Mid(dbDesimalPart, NumOfDigits + 1, 1)
End If
If dbRoundPart > 4 Then
dbDesimalPart = Left(dbDesimalPart, NumOfDigits) + 1
Else
dbDesimalPart = Left(dbDesimalPart, NumOfDigits)
End If
RoundF = Val(Int(Number) & "." & dbDesimalPart)
End Function
If Not IsNumeric(Number) Then Exit Function
Dim iPos As Long
iPos = InStr(Number, ".")
Dim dbDesimalPart As Long
Dim dbRoundPart As Long
If iPos > 0 Then
dbDesimalPart = Mid(Number, iPos + 1)
End If
If NumOfDigits < Len(CStr(dbDesimalPart)) Then
dbRoundPart = Mid(dbDesimalPart, NumOfDigits + 1, 1)
End If
If dbRoundPart > 4 Then
dbDesimalPart = Left(dbDesimalPart, NumOfDigits) + 1
Else
dbDesimalPart = Left(dbDesimalPart, NumOfDigits)
End If
RoundF = Val(Int(Number) & "." & dbDesimalPart)
End Function