1. Excelvba调用函数
打开Excel程序,按键盘组合键“Alt+F11”或切换至“开发工具”功能区并点击“Visual Basic”按钮进入VBA环境。
有关开启“开发工具”功能区的方法请参考本经验最后部分的讲解。
2在VBA环境下,右击“Microsoft Excel对象”,从弹出的菜单中选择“插入”->“模块”项。
3在打开的模块窗口中,输入以下代码:
Function 三项合并计算(a, b, c)
三项合并计算 = a * b + c
End Function
该代码用于对提供的三个参数进行计算,结果返回函数本身。
4接着返回Excel界面,在单元格中输入公式“=三项合并计算(2,3,5)”并按回车键即可得结果。
5当然,我们还可以通过引用三个单元格数据来实现同样的计算功能:分别在A2、B2、C2单元格中输入2,3,5,在D2单元格中输入“”并按回车键即可得结果。
如何开启“开发工具”功能区
1点击“Office按钮”,在打开的扩展面板中点击“Excel选项”。
2接着勾选“在功能区显示‘开发工具’选项卡”项即可。
2. excelvba常用函数
当vlookup找不到匹配的结果,就会返回错误值#N/A,这个错误值使vba报错。为了避免找不到而报错,可以使用以下错误捕获当然,你使用find方法也可以,方法不唯一,就看你习惯用哪个。
3. vba函数参数传递
ByVal 与 ByRef(默认值)
这两个是子过程的参数传递时,指定参数按什么传递的
ByVal(按值传递)
ByRef(按地址传递)
具体这样来理解:
过程中的参数列表,我们称形参
调用过程时的参数列表,我们称实参
在调用时,我们要将实参的值传递给形参,这样过程才能拿这些数据参与计算并实现一些功能
那么在传递的过程中,就存在这两种传递方式
传值时(ByVal),是先给形参开辟一个临时地址,将实参的内容传入这个临时地址,这样,传递后,形参与实参是在两上不同的地址中,也就是说他们是相互独立的
传址时(ByRef),是直接将实参的地址传递给形参,这样,形参与实参就共用一个地址,所以,形参内容的改变,也直接改变了实参的内容
通过上面的分析,你只要记得:
按值传递时(ByVal),形参的改变不会影响到实参
按址传递时(ByRef),形参的改变,会影响到实参
应用时,我们可以利用按址传递的过程,给一个子过程(Sub过程)进行参数返回
例:
Dim A as integer,B as integer
A=1
B=2
Call AAA(A,B)
Print A & " " & B '得到的结果是2 3 (形参的改变影响到了实参)
Call BBB(A,B)
Pring A & " " & B '得到的结果跟上面的一样, 2 3 (形参的改变并没有影响到这个实参)
Sub AAA(i as integer, j as integer) '默认,则按址传递
i=i+1
j=j+1
End Sub
Sub BBB(ByVal i as integer, ByVal j as integer)
i=i+1
j=j+1
End Sub
4. vba中调用函数的几种方法
①种调用方法
Worksheets(1).Range("E6") = WorksheetFunction.Median(Range("A1:B4"))
这种调用形式,函数的参数是单元格地址区域,属于普通型,但数据区域的定义难于确定。
②种调用方法
Worksheets("sheet1").Range("D6") = Application.Min(Range("A1:B4"))
这种调用形式,函数参数的数据区域及工作表名称,属于普通型,灵活性不够。
③种调用方法
Worksheets(1).Range("C6") = Application.Max(Worksheets("Sheet1").Range("A1:B4"))
5. excelvba调用api数据
可编译成com组件,提供API给vba调用
- 相关评论
- 我要评论
-