|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
Excel的强大函数功能,为我们带来了极大方便,虽然它有200多个函数,但有时我们为实现一项规定的功能,可能用到几个函数或者采用嵌套函数,这样应用起来,也不太方便。其实对于我们经常用到的功能,我们可以创建自定义函数UDF(User—defined function),它的运行与Excel中自带的函数完全相同。建立自定义函数有以下几个优点:建立自己特殊的功能和名称的函数;能将复杂的、嵌套的、多个原有的函数组合在一起,发挥更大的威力。% J- h* ?4 J+ J0 n3 G6 f5 F
比如现在我们要根据收入来计算个人收入调节税,按照规定每月收入减去800元基础后,除去养老保险金、失业保险金、医疗保险金、住房公积金、工会费,对剩下的余额征收个税。余额在500元内的征收余额的5%,余额为500~2000元的征收余额的10%,余额为2000~5000元的征收余额的15%……征收个税的最高税率为45%(余额在10万元以上的)。如果用Excel的函数,则要进行多层if嵌套,稍有不注意,可能造成计算上差错,我们建立自己的函数来解决这个问题。7 O; ~$ D! e# _8 ]+ W! K, C$ z
首先进入Excel,在[工具]→[宏]→[Visul Basic编辑器](也可按组合键[Alt+F11]),在“Visul Basic编辑器”中选择[插入]→[添加模块],在代码窗口输入下列函数:
' Q( N; S! i5 o& R( x3 T! p2 }8 g" s# @* a; O) c2 \) W( s
一、添加自制函数
, F5 ]8 }* ]% |( V1 v Function tax(income As Single) As Single9 V6 k# J7 A0 v) `5 N% J9 F# P
Select Case income9 F+ y5 `. b4 g
Case 0 To 800, G) |2 D' A: @' u9 Q
tax = 0# K# Y& [: `5 h: |' m# h) A
Case 800.01 To 1300
( p: j2 e( O8 O0 A tax = (income - 800) * 0.05
# ]; w# z2 s9 F* ^) Q Case 1300.01 To 28005 B' E$ D2 u0 R; p6 E/ f
tax = (income - 1300) * 0.1 + 259 p$ W3 b% l3 o+ q
Case 2800.01 To 5800
' B0 y* z$ B k( z tax = (income - 2800) * 0.15 + 175) K. w( c, k$ R( H8 Z! a# [. |' ^; D
Case 5800.01 To 208000 x! N/ t( R$ C5 m
tax = (income - 5800) * 0.2 + 6258 k, D7 a2 q, b5 i: I) g2 D
Case 20800.01 To 40800
W9 V1 k& n- y2 O8 M" |3 o3 ~ tax = (income - 20800) * 0.25 + 3625
# E6 S9 @' R3 h/ ]) s Case 40800.01 To 60800
/ K8 c i) V' V& w$ t, w$ D, U L tax = (income - 40800) * 0.3 + 8625
: d G0 e$ U$ U, z" G3 _ Case 60800.01 To 808000 z! o- G3 o! f" z
tax = (income - 60800) * 0.35 + 146250 P- R8 ?* y6 _! p
Case 80800.01 To 1008009 _% s: x; w8 Q( C8 e4 t4 U
tax = (income - 80800) * 0.4 + 21625
8 S7 @) n& ]! G% I# p* f Case Is >= 100800
. }0 e' z: m ^6 Z; G tax = (income - 100800) * 0.45 + 29625
1 N1 r5 K5 A4 Z& {" d, Y5 ? Case Is < 0
5 {2 C9 }% a1 m* r5 G' g" U( F MsgBox "你的工资 " && income && " 输入有误"
9 Y) N4 S; q+ g) z End Select
9 `! J. m9 u' C# D, e- E End Function
- ? u# `* Y; w4 `; ^ 我们知道,Excel中函数都有一个说明,帮助使用,我们也要给这个函数添加一个说明。在工具栏中选择“对象浏览器”(如图1),选择我们所做Tax模块,在其[右键]→[属性]中添加关于对这个函数的描述,这个描述将出现在Excel中关于函数的说明中,如果你要对软件保密的话,在“模块”上按右键,[VBAproject属性]→[保护中设置密码],嘿嘿!别人就看不到你的源程序了。0 ]. N2 k# {5 u
5 r9 r& T" j9 x4 B+ _+ d
二、使用自制函数
( ^3 c/ [0 L. {- E: N 这时,退出,回到Excel界面,将这个文件另存为:类型为“Microsoft Excel 加载宏”,在Excel 2000中,它会自动更改保存位置为c:\windows\application data\microsoft\addins(系统装在c:\windows),当然,你也可以把这个文件tax.xla,直接复制到office\library(office的安装路径下),而在Excel 97中只能放在后一个位置。使用函数很简单,点击[工具]→[加载宏],在你创建的Tax前打个勾,在单元格直接输入“=tax()”,是不是像Microsoft office提供的函数一样(如图2),很有点专业味道。
( F2 k; s6 b) z1 w0 h" H/ c- a6 Y! J" W
三、我的函数好像不够专业6 R" @ g% \# z" Q) W3 k. u2 Z* b
假如你把调用这个宏的Excel文件拷贝到别的机子上运行,会出现“当前所要打开的文档含有其他文档的链接,是否要使用其他工作簿中的改动更新当前工作簿”的提示,可以显示原先计算的数据,这是因为在Excel中的[工具]→[选项]→[重新计算]中,一般选中“保存外部链接数据”,但你不能重新计算,因为不能链接这个宏,别人机子上根本就没有这个函数。) ^( `- n# k6 g9 _' P3 a9 t
* c0 j( d; T Y5 i& V5 J- m 四、添加中文描述+ C/ b. d# \2 v2 D: U
只不过在“加载宏”时,我自己创建的函数,是一个英文标题,而且下面也没有说明,你是不是觉得有点不够专业。跟我来,再教你一招,如果你使用的是Excel 2000时,找到tax.xla,点击[右键]→[属性]→[摘要] (如图4),在描述里添加所需内容来对函数进行相关描述,其中“标题”部分将出现在“加载宏”的方框中,“备注”部分将出现在下面的函数说明部分。这时再看看,够不够专业。在Excel 97中也可以在其右键属性中作相应更改。 |
|