当前位置: 首页 > news >正文

VBA —— 学习Day5

子程序与函数

子程序:实现特定功能的程序代码块

子程序语法:

[修饰符] Sub 子程序名称([参数1,参数2,参数3])

        代码块

End Sub

子程序如何调用:

1 . 子程序名 [参数1,参数2,...]

2.   Call 子程序名 [(参数1,参数2,...)]

带参子程序

eg.

Sub AddNumber2(Num1 As Integer,Num2 As Integer)

        Dim Sum As Integer

        Sum = Num1 + Num2

        Debug.Print "相加结果:" & Sum

End Sub

Sub TestSub2()

        AddNumber2 100, 200

        //Call AddNumber2(1000,500)

End Sub

注:当我们传递给带参数的子程序参数值的时候,一定要注意数量能够完全匹配,否则,就会报错

可选参数:(可能有值,可能没有值)

用Optional修饰

eg.

Sub AddNumbers可选参数(Num1 As Integer,Num2 As Integer,Optional Num3 As Integer)

        Dim Sum As Integer

        Sum = Num1+Num2+Num3

        Debug.Print "相加结果:" & Sum

End Sub

Sub TestSub()

        Call AddNumbers可选参数(10,20)

End Sub

注意:1. 可选参数,只能放在最后

           2. 可选参数,可以设置默认值;如果没有传递参数值给可选参数,就会使用默认值,如果传递了参数值,就会使用传递的参数值

eg.

Sub AddNumbers可选参数(Num1 As Integer,Num2 As Integer,Optional Num3 As Integer = 100

        Dim Sum As Integer

        Sum = Num1+Num2+Num3

        Debug.Print "相加结果:" & Sum

End Sub

Sub TestSub()

        Call AddNumbers可选参数(10,20)

End Sub

可变参数:

传动态数组,用ParamArray修饰

eg.

Sub AddNumbers可变参数(ParamArray Numbers() As Variant)

        Dim Sum As Double,Index As Integer

        For Index = LBound(Numbers) To UBound(Numbers)

                Sum = Sum + Numbers(Index)

        Next Index

        Debug.Print "相加结果:" & Sum

End Sub

Sub TestSub2()

        AddNumbers可变参数 100,200,300

End Sub

注意:1. 可变参数,只能放在最后

           2. 可变参数只能设置为Variant类型

数组参数:

eg.

Sub AddNumbers数组参数 (Numbers As Variant)

        Dim Sum As Double,Index As Integer

        For Index = LBound(Numbers) To UBound(Numbers)

                Sum = Sum + Numbers(Index)

        Next Index

        Debug.Print "相加结果: " & Sum

End Sub

Sub TestSub()

        Dim MyArray(1 To 4) As Integer

        MyArray(1) = 10

        MyArray(2) = 20

        MyArray(3) = 30

        MyArray(4) = 40

        AddNumbers数组参数(MyArray

        //使用Array函数所生成的一维数组

        Dim MyArray2 As Variant

        MyArray2 = Array(10,20,30,40,50)

        AddNumbers数组参数(MyArray2)

End Sub

http://www.xdnf.cn/news/377515.html

相关文章:

  • JVM 逃逸分析
  • 怎么免费下载fbx格式模型、和blender格式文件模型,还可以在线编辑修改
  • AVL树实现
  • LLMs之ChatGPT:《Connecting GitHub to ChatGPT deep research》翻译与解读
  • 湖北理元理律师事务所:债务优化如何实现还款与生活的平衡?
  • window 显示驱动开发-AGP 类型伸缩空间段
  • Python基于Django的高校教室管理系统【附源码、文档说明】
  • 等价无穷小代换
  • LeetCode LCR 007. 三数之和 (Java)
  • 学习适应对智能软件对对象的属性进行表征、计算的影响
  • day010-命令实战练习题
  • 《C++中插入位的函数实现及示例说明》
  • 大模型中的三角位置编码实现
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类边距QMarginsF)
  • 【部署】win10的wsl环境下启动dify的web前端服务
  • 21.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--身份认证服务拆分规划
  • linux perf top分析系统性能
  • 光流 | 基于深度学习的光流估计算法汇总,原理,公式,流程图,代码
  • 人形机器人量产元年开启,AI与物理世界深度融合
  • CAS操作
  • Ceph集群故障处理 - PG不一致修复
  • [SV]等待32个instance的某一个信号的pulse,该怎么写?
  • Windows 系统 - Trae 内 终端 无法使用 node (重新配置 nodejs 路径)
  • 青藏高原东北部祁连山地区250m分辨率多年冻土空间分带指数图(2023)
  • AtCoder AT_abc405_d ABC405D - Escape Route
  • 智慧能源大数据平台建设方案(PPT)
  • 数字孪生实战笔记(1)数字孪生的含义、应用及技术体系
  • RPA 浏览器自动化:高效扩展与智能管理的未来
  • SpringBoot学习(上) , SpringBoot项目的创建(IDEA2024版本)
  • 基于阿伦尼斯模型的电池寿命预测:原理、应用与挑战