自定义函数 四舍五入升级版:四入五,五进一
1、打开一张空白Excel表格,并按Alt+F11,调出VBA编辑器

2、在VBA编辑器中插入一个模块

3、复制下面的函数代码,粘贴到模块中:
Function fGet5(vntInput As Variant, Optional intCount As Integer = 1, Optional blnUpDown As Boolean = True) As Variant
'对原值向上舍取,并向下舍取,然后返回中值
'根据blnUpDown选项,默认向上取值,也可以向下取值
Dim vntUp As Variant, vntDown As Variant
'设置默认返回值
fGet5 = ""
'输入为空值,则退出
If vntInput = "" Then Exit Function
If IsNumeric(vntInput) Then
'获取上值
vntUp = WorksheetFunction.RoundUp(vntInput, intCount - 1)
'获取下值
vntDown = WorksheetFunction.RoundDown(vntInput, intCount - 1)
'返回中值
fGet5 = (vntUp + vntDown) / 2
If blnUpDown = True Then
'如果原值大于中值,则返回上值
If vntInput > fGet5 Then fGet5 = vntUp
Else
'如果原值小于中值,则返回下值
If vntInput < fGet5 Then fGet5 = vntDown
End If
End If
End Function

4、保存代码之后,便可以在工作表中使用该函数,函数默认是保留一位小数和向上取值,也可以自行设置参数为False向下取值
