|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
我想先找出适用税率及速算扣除数,可是适用税率是可以判断的,但是速算扣除数和个税就不正确了,请高人帮帮忙修改一下,能告诉我为什么么?谢谢
Sub 分步计算个税()
On Error Resume Next
r = Array(0, 1500, 4500, 9000, 35000, 55000, 80000) '扣除3500元以后的收入级差
s = Array(0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45) '收入级差对应的税率
t = Array(0, 105, 555, 1005, 2755, 5505, 13505) '速算扣除数
Dim Deduct() As Range
Dim Tax() As Double
Dim rate() As Double
Set rng = Application.InputBox("请选择源区域", "温馨提示", , , , , , 8)
arr = rng
m = rng.Rows.Count
ReDim Deduct(1 To m) As Range
ReDim Tax(1 To m) As Double
k = 3
For i = 1 To m '遍历各行
n = arr(i, 1)
If IsNumeric(arr(i, 1)) Then '怎么不能忽略文本??????????????????????????????
If arr(i, 1) <> "" Then
If n > 3500 Then '超3500元时
n = n - 3500 '扣除免征额
For j = 6 To 0 Step -1 '6级累进!
If n > r(j) Then arr(i, 1) = s(j): Deduct(i) = t(j) : Tax(i) = round(n * arr(i,1),2) :Exit For
Next
Else '不超3500元时免征
arr(i, 1) = 0
End If
End If
End If
Next
If m > 0 Then
rng(1).Offset(, k).Resize(m) = arr '输出扣税计算结果。
rng(1).Offset(, k + 1).Resize(m) = Deduct
rng(1).Offset(, k + 2).Resize(m) = Tax
End If
End Sub
|
|