分享

新个税下累计预扣法用VBA来计算

 L罗乐 2020-02-01

昨天有小伙伴留言说,现在是用累计预扣法来计算个税了。

什么是累计预扣法呢?

采用累计预扣法计算应预扣税款时,扣缴义务人要以纳税人本年度截至当前月份取得的累计收入减除累计免税收入、累计减除费用、累计专项扣除、累计专项附加扣除和累计依法确定的其他扣除后的余额,计算累计的应纳税所得额,适用年度税率表,计算累计应预扣预缴税额。最后,用累计应预扣预缴税额减除累计减免税额和累计已预扣预缴税额,计算本期应预扣预缴税额。

计算公式如下

本期应预扣预缴税额=(累计预扣预缴应纳税所得额×预扣率-速算扣除数)-累计减免税额-累计已预扣预缴税额

累计预扣预缴应纳税所得额=累计收入-累计免税收入-累计减除费用-累计专项扣除-累计专项附加扣除-累计依法确定的其他扣除

咱们来看,某人每月应发20000元,每月各项扣除6800元

先来看下1月份预扣预缴个税的计算

(20000-6800)*0.03=396

接下来2月份预扣预缴个税的计算

2月份要减去1月份预扣预缴个税

(20000*2-6800*2)*0.03-396=396

3月份预扣预缴个税的计算

3月份应纳税所得额为20000*3-6800*3=39600

3月份的预扣率为10%,速扣数2520,减去1月份和2月份的预扣预缴个税

(20000*3-6800*3)*0.1-2520-396-396=648

接下来,把上面的演算写成代码

定义一个double类型的变量taxable_income来存储当月应纳税所得额

定义一个double类型的变量paid_in来存储已缴累计,如果是1月份,不参与累计,如果是2月份往后的,就累计前面月份的已缴个税

Sub main()Dim i As IntegerDim taxable_income As Double '应缴纳所得税额Dim paid_in As Double '已缴个税累计Dim payable As Double '当月应缴纳个税额For i = 1 To 12 taxable_income = Cells(i 1, 2) * i - Cells(i 1, 3) * i If i > 1 Then paid_in = paid_in Cells(i, 4) End If If taxable_income >= 960000 Then payable = taxable_income * 0.45 - 181920 ElseIf taxable_income >= 660000 Then payable = taxable_income * 0.35 - 85920 ElseIf taxable_income >= 420000 Then payable = taxable_income * 0.3 - 52920 ElseIf taxable_income >= 300000 Then payable = taxable_income * 0.25 - 31920 ElseIf taxable_income >= 144000 Then payable = taxable_income * 0.2 - 16920 ElseIf taxable_income >= 36000 Then payable = taxable_income * 0.1 - 2520 ElseIf taxable_income >= 0 Then payable = taxable_income * 0.03 End If Cells(i 1, 4) = payable - paid_inNext iEnd Sub

小伙伴们和昨天计算个税的代码进行比较,今天的代码是先存储在变量,然后写入到单元格,昨天是依次写入单元格,这样有啥好处?

最后说下,那个某人不是我,只是举例,举例说明,侬晓得伐?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多