采用超额累进税率计税时,简化计算应纳税额的一个数据。速算扣除数实际上是在级距和税率不变条件下,全额累进税率的应纳税额比超额累进税率的应纳税额多纳的一个常数。因此,在超额累进税率条件下,用全额累进的计税方法,只要减掉这个常数,就等于用超额累进方法计算的应纳税额,故称速算扣除数。采用速算扣除数法计算超额累进税率的所得税时的计税公式是:
应纳税额=应纳税所得额×适用税率-速算扣除数
速算扣除数的计算公式是:
本级速算扣除额=上一级最高所得额×(本级税率-上一级税率)+上一级速算扣除数 超额累进税率全额累进税率
用上述公式求得的速算扣除数,可用直接计算法验证其准确性,以个人所得税工资、薪金所得适用的9级超额累进税率第2级验证如下:
① 用上述公式计算:
500×(10%-5%)+0=25
② 用直接计算法计算
全额累进税率的应纳税额=2000×10%=200
超额累进税率的应纳税额=(500×5%)+(1500×10%)=175
速算扣除数=200-175=25
附计算依据:
应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数
扣除标准1600元/月。
不超过500元的,税率5%,速算扣除数为0;
超过500元至2000元的部分,税率10%,速算扣除数为25
超过2000元至5000元的部分,税率15 %,速算扣除数为125
超过5000元至20000元的部分,税率20 %,速算扣除数为375
超过20000元至40000元的部分,税率25%,速算扣除数为1375
超过40000元至60000元的部分,税率30%,速算扣除数为3375
超过60000元至80000元的部分,税率35%,速算扣除数为6375
超过80000元至100000元的部分,税率40%,速算扣除数为10375
超过100000元的部分,税率45%,速算扣除数为15375
Private Sub Command1_Click()
Dim k1 As Single, k2 As Single, k3 As Single, k4 As Single
k2 = Val(Text1(3).Text)
k1 = Val(Text1(0).Text) - k2
If Val(Text1(0).Text) = 0 Then MsgBox "请输入金额!"
If k2 = 0 Then MsgBox "请输入起征点金额!"
If k1 > 57505 Then
k3 = 0.45
k4 = 13505
Else
If k1 > 41255 Then
k3 = 0.35
k4 = 5505
Else
If k1 > 27255 Then
k3 = 0.3
k4 = 2755
Else
If k1 > 7755 Then
k3 = 0.25
k4 = 1005
Else
If k1 > 4155 Then
k3 = 0.2
k4 = 555
Else
If k1 > 1455 Then
k3 = 0.1
k4 = 105
Else
k3 = 0.03
k4 = 0
End If
End If
End If
End If
End If
End If
Text1(1).Text = (k1) * k3 - k4
Text1(2).Text = Val(Text1(0).Text) - Val(Trim(Text1(1).Text))
End Sub
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 3
Text1(i).Text = ""
NextText1(3).Text = "3500"
Command1.Caption = "计算"
Label1(0).Caption = "收入金额"
Label1(1).Caption = "应缴税金:"
Label1(2).Caption = "税后收入:"
Label1(3).Caption = "起征金额:"
End Sub
Text1写入 应纳税所得额,点击Command1 Text2为应纳税额。但是按照你的公式计算不对,可能是我对你的公式理解有误,第二个程序应该符合扣税规则
Private Sub Command1_Click()
Dim Salary As Long
Dim Tax As Long
Salary = Val(Text1)
Select Case Salary
Case Is > 57505
Tax = (Salary-3500) * 0.45 - 13505
Case Is > 41255
Tax = (Salary -3500)* 0.35 - 5505
Case Is > 27255
Tax = (Salary -3500)* 0.3 - 2755
Case Is > 7755
Tax = (Salary -3500)* 0.25 - 1005
Case Is > 4155
Tax = (Salary -3500)* 0.2 - 555
Case Is > 3500
Tax = (Salary -3500)* 0.1 - 105
End Select
Text2 = Tax
End Sub
或者
Private Sub Command1_Click()
Dim Salary As Long
Dim Tax As Long
Salary = Val(Text1)
Do While Salary > 3500
Select Case Salary
Case Is > 57505
Tax = Tax + (Salary - 57505) * 0.45
Salary = 57505
Case Is > 41255
Tax = Tax + (Salary - 41255) * 0.35
Salary = 41255
Case Is > 27255
Tax = Tax + (Salary - 27255) * 0.3
Salary = 27255
Case Is > 7755
Tax = Tax + (Salary - 7755) * 0.25
Salary = 7755
Case Is > 4155
Tax = Tax + (Salary - 4155) * 0.2
Salary = 4155
Case Is > 3500
Tax = Tax + (Salary - 3500) * 0.1
Salary = 3500
End Select
Loop
Text2 = Tax
End Sub
计算公式有问题
细心思考验证下就行