【原创】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 / function
  • call sub /function
  • application.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 none
  • VBA的function也是一定有返回值把,至少是none
  • VBA的sub 没有返回值

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

3 application.run 的更多用法

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

  • 2
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值