有一段宏,要改一下,因为四舍五入不对,请问有没有哪位同学会弄的?
大海 于 2009-5-6 09:10 AM 写道:
内事不决问百度
错了,内事不决问老婆
外事不决问百度
楼主,你的问题太泛,具体点?
不能直接贴excel表上来啊?那我把宏直接贴上来吧。现在的问题是它计算应缴个人所得税的时候,直接截取小数点后的两位数字,我想改为四舍五入,取两位小数:
Sub 计算应缴税金()
Dim line, endline As Integer 'line为具体每个人纳税信息在表格中的行号,endline为最后一条记录的行号
'根据编号是否为空确定最后一条记录的所在行号
endline = 4
Do While Worksheets("sheet1").Cells(endline, 1).Value ""
endline = endline + 1
Loop
'根据应纳税额计算应交税金
For line = 4 To endline - 1
'1.应纳税额=工资-减除费用额
Worksheets("sheet1").Cells(line, 5) = Round(Worksheets("sheet1").Cells(line, 3) - Worksheets("sheet1").Cells(line, 4), 2)
'2.根据应纳税额和累进税率计算应交税金
Select Case Worksheets("sheet1").Cells(line, 5)
Case 0
Worksheets("sheet1").Cells(line, 6) = 0
Worksheets("sheet1").Cells(line, 7) = 0
Case 0 To 500
Worksheets("sheet1").Cells(line, 6) = 0.05
Worksheets("sheet1").Cells(line, 7) = 0
Case 500 To 2000
Worksheets("sheet1").Cells(line, 6) = 0.1
Worksheets("sheet1").Cells(line, 7) = 25
Case 2000 To 5000
Worksheets("sheet1").Cells(line, 6) = 0.15
Worksheets("sheet1").Cells(line, 7) = 125
Case 5000 To 20000
Worksheets("sheet1").Cells(line, 6) = 0.2
Worksheets("sheet1").Cells(line, 7) = 375
Case 20000 To 40000
Worksheets("sheet1").Cells(line, 6) = 0.25
Worksheets("sheet1").Cells(line, 7) = 1375
Case 40000 To 60000
Worksheets("sheet1").Cells(line, 6) = 0.3
Worksheets("sheet1").Cells(line, 7) = 3375
Case 60000 To 80000
Worksheets("sheet1").Cells(line, 6) = 0.35
Worksheets("sheet1").Cells(line, 7) = 6375
Case 80000 To 100000
Worksheets("sheet1").Cells(line, 6) = 0.4
Worksheets("sheet1").Cells(line, 7) = 10375
Case Is > 100000
Worksheets("sheet1").Cells(line, 6) = 0.45
Worksheets("sheet1").Cells(line, 7) = 15375
End Select
Worksheets("sheet1").Cells(line, 8) = Round(Worksheets("sheet1").Cells(line, 5) * Worksheets("sheet1").Cells(line, 6) - Worksheets("sheet1").Cells(line, 7), 2)
'3.填写税后工资
Worksheets("sheet1").Cells(line, 9) = Round(Worksheets("sheet1").Cells(line, 3) - Worksheets("sheet1").Cells(line, 8), 2)
Next
End Sub
Worksheets("sheet1".Cells(line, 8) = Round(Worksheets("sheet1".Cells(line, 5) * Worksheets("sheet1".Cells(line, 6) - Worksheets("sheet1".Cells(line, 7), 2)
好象也没错啊,是四舍五入取了两位小数啊?