【原创】VBA学习笔记(19)VBA的函数/过程3种调用方式

【原创】VBA学习笔记(19)VBA的函数/过程3种调用方式

目录

1 VBA里sub和function的3种调用方式

1.1 调用函数的多种写法

1.2 执行过程的多种写法

1.3 application.run

1.4 还有一种调用方法

1.5 还有一种调用方法

2 代码实测各种调用方式

2 VBA过程,函数的返回,对比python等

3 application.run 的更多用法

1 VBA里sub和function的3种调用方式

1.1 调用函数的多种写法

function()call function()

1.2 执行过程的多种写法

sub 1个参数sub 参数1 参数2(错误)call sub (1个参数)call sub (参数1,参数2)appcaiton.run sub

1.3 application.run

1.4 还有一种调用方法

就是用函数名=结果,这样给函数设定返回值VBA里没有return,可以这样返回值

并且如果多层套用这样不同于call 的调用,call只是运行了函数,并不会把自身返回值返回给上层调用他的函数,如果希望上层调用他的函数也有返回值,就需要再上层函数也写返回值,类return如下面的例子

function testf1(a,b)

test1=a+b

end function

function testf2(a,b)

tets2= testf1(a,b)

end function

1.5 还有一种调用方法

无意义的套一层是可以的本质和1.4是一样的

function testf1()

end function

function testf2()

call testf1()

end function

function testf1(a,b)

test1=a+b

end function

function testf2(a,b)

tets2= testf1(a,b)

end function

2 代码实测各种调用方式

sub / functioncall sub /functionapplication.run

Sub test1001()

Debug.Print func1001(100, 99)

test1002 11

Call test1002(11)

Call test1003(1000, 999)

Debug.Print Application.Run("test1002", 111)

End Sub

Sub test1002(m)

Debug.Print m * m

End Sub

Sub test1003(x, y)

Debug.Print x + y

End Sub

Function func1001(a, b)

func1001 = a + b

End Function

2 VBA过程,函数的返回,对比python等

python的函数一定会返回,函数带return 不带默认会返回 return noneVBA的function也是一定有返回值把,至少是noneVBA的sub 没有返回值

返回的方式不同python 的function 可以使用 return返回VBA的function 直接让 function_name = xxxx 这样返回并且VBA的sub不能返回值,sub_name=xxxx 会报错

3 application.run 的更多用法

Application.Run 的参数传递示例,测试通过-Excel VBA程序开发-ExcelHome技术论坛 -

相关文章