夜雨聆风学习资料网

ARTICLE · 1166371

VBA之Excel应用第六章第四节 用Select Case语句对分段税率进行精确计算

VBA之Excel应用第六章第四节 用Select Case语句对分段税率进行精确计算

《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是VBA之Excel应用第六章第四节用Select Case语句对分段税率进行精确计算

【分享成果,随喜正能量】人生没有最好的年龄,只有最好的心态,我们争不过岁月,也跑不过时间,唯有以自己喜欢的的方式,过好每一个日出日落。

第六章第四节用Select Case语句对分段税率进行精确计算

我们这讲的内容给大家讲一个实例,再次说明一下条件判断中多条件的处理方法。这个例子也是我们现实中利用到的例子,只要稍加处理就可以使用。我们身处职场,每月都会得到自己的收入,这些收入是扣税之后的。如果税率是分段的,该如何计算自己的应纳税金额呢?我们这讲就这个分段税率给出一个VBA小程序,让这个程序能自动算出应纳税的金额。

1分段税率的应用场景

某位职工所在的国家是澳大利亚,我们看一下这个国家的税率:

从上表我们看出,一共有5个分段,自己的应纳税金额不同,对应的税率也不同。

2实现分段计税的思路分析

如下的工作表界面:

在A列是个人应纳税所得额,要在B列填入这个金额应纳税的金额。当然,应纳税金额是要按照分段税率来计算的。

思路分析:我们在A列建立一个循环,在所有的应纳税所得额中进行循环处理,循环处理的语句就是我们要根据税率要计算出的税金。在判断处理中,我们要利用Select Case语句对A列的数值进行判断。一共分为5种情况:

① 第一种情况 当应纳税所得额大于180000时

② 第二种情况 当应纳税所得额小于180001时,大于80000时

③ 第三种情况 当应纳税所得额小于80001时,大于35000时

④ 第四种情况 当应纳税所得额小于35001时,大于6000时

⑤ 第五种情况 当应纳税所得额小于6001时

我们要将以上的各种情况作为Case后的判断条件,然后得出税金。

3实现分段计税的代码及代码解读

我们先来看看我给出的代码:

Sub mynzD() '实现分段计税

DimmyIncome As Double

DimmyTax As Double

I= 2

DoWhile Cells(I, 1) <> "" '在A列即个人应纳税所得额列建立一个循环

Cells(I,2) = ""'清空B列

myTax= 0'清空税金

myIncome= Round(Cells(I, 1).Value) '将应纳税所得额赋值给myIncome,并四舍五入

SelectCase myIncome'根据myIncome的值进行税金的计算

CaseIs >= 180001'第一种情况 当应纳税所得额大于180001时

myTax= 55850 + 0.45 * (myIncome - 180000)

CaseIs >= 80001 '第二种情况 当应纳税所得额小于180000时,大于80000时

myTax= 17850 + 0.38 * (myIncome - 80000)

CaseIs >= 35001 '第三种情况 当应纳税所得额小于80001时,大于35000时

myTax= 4350 + 0.3 * (myIncome - 35000)

CaseIs >= 6001 '第四种情况 当应纳税所得额小于35000时,大于6000时

myTax= 0.15 * (myIncome - 6000)

CaseElse '第五种情况 当应纳税所得额小于6001时

myTax= 0

EndSelect

Cells(I,2).Value = myTax '讲纳税金额填入B列

I= I + 1

Loop

End Sub

代码截图:

代码解读:以上代码会根据A列的数值,按照分段税率的条件,求出税金。具体的讲解我在代码中已经加了注释,不再多说。

下面看代码的运行效果:

今日内容回向:

1)Select Case 语句在计算分段税率中是如何应用的?

2)使用Select Case 语句一定要列出条件的各种情况,本例的条件是如何确定的?

本讲内容参考程序文件:工作簿06.xlsm

我20多年的VBA成果全在下面的资料中:

相关学习资料