[TOC]
今天编辑部用Excel弄月季度奖励的时候,涉及到一些复杂的业务逻辑,比如不同数据,奖金不一样,等等,这时候就要用到自定义函数了,谁叫我是开发部门的,不是我们做,谁做,小研究一下,特此记录。
其他版本的同学请自行百度使用方法,流程步骤类似。
2013版本的开发工具貌似默认不会显示出来,需要自行设置,还好我们有快捷键ALT+F11
用户窗体:写过c#窗体的同学你懂的
模块:类似全局变量与函数,不包含对象或属性设置而只包含可在代码窗口中显示和编辑的代码。
类模块:需要实例化对象才能调用,包含代码又包含数据,可视为没有物理表示的控件。
一般的自定义函数我们只用到了模块~
然后帖上代码即可
'1个阅读奖励0.01元,去掉个、十百位,如10000阅读量即奖励100元,12552阅读量奖励120元;2万阅读即奖励200元,以此类推,500元封顶;10万+文章再奖励200元。
Function GetMoney(readcount As Long) As Long
GetMoney = readcount * 0.001
GetMoney = GetMoney * 10
If GetMoney > 500 Then
GetMoney = 500
End If
If readcount > 100000 Then
GetMoney = GetMoney + 200
End If
End Function
在函数下方写一个子过程即可,在需要调试的代码处加入断点,选中该子过程代码,按F5运行子过程调试即可
Sub test()
GetMoney (1234567)
End Sub
只需在函数下写一个子过程,按F5运行子过程即可,如果有多个函数自行循环调用Application.MacroOptions。
Sub RegUDF()
Dim FuncName As String '函数名称
Dim FuncDesc As String '函数描述
Dim Category As String '函数类别
Dim ArgDesc(0) As String '函数参数描述数组
FuncName = "GetMoney"
FuncDesc = "获取阅读量的奖金"
Category = "编辑部函数"
ArgDesc(0) = "阅读量,整型"
Call Application.MacroOptions(Macro:=FuncName, Description:=FuncDesc, Category:=Category, ArgumentDescriptions:=ArgDesc)
End Sub
另保存为宏文件
为了让我们宏文件有名称显示,记得修改一下【文件】-》【信息】-》【属性】
Excel97-03的格式为.xla
后面的版本格式为.xlam
确定之后,任何一个文档,都会自动加载该宏,获取我们的自定义函数
新建一个Excel,Alt+F11
调出代码编辑器,你会发现一家自动加载了xla
整个过程就是这样~
记录一下快速入门吧~大概了解语法即可。
dim name
name=some value
Dim names(2)
names(0)="Tove"
names(1)="Jani"
names(2)="Stale"
Sub mysub()
some statements
End Sub
Sub mysub(argument1,argument2)
some statements
End Sub
Function myfunction()
some statements
myfunction=some value
End Function
或者
Function myfunction(argument1,argument2)
some statements
myfunction=some value
End Function
VBScript教程: http://www.runoob.com/vbscript/vbscript-tutorial.html