Excel |
您所在的位置:网站首页 › 宏在excel中怎么用 › Excel |
文章目录
一、Excel VBA 介绍1.1. 宏1.2. Visual Basic 编辑器
二、VBA - 定义过程三、VBA - 类型与变量四、VBA - 函数1. 普通函数2. 可选参数的函数3. 参数有默认值的函数4. 调用函数时指定参数名称传值5. 不定长参数列表的函数
一、Excel VBA 介绍
VBA(Visual Basic for Applications),是一种用来扩展 Microsoft Office 功能的编程语言,常见的是用来扩展 Excel 功能,为 Excel 添加自动化脚本,而从提高 Excel 的办公效率 1.1. 宏宏是录制 Excel 操作过程,然后自动生成 VBA 代码的工具,通过宏可以避免编写大量的 VBA 代码,能更简单的实 现 Excel 自动化,但是宏具有局限性,当要实现逻辑更复杂的功能时,还是需要编写 VBA 代码 1. 录制宏 Microsoft Office 中自带 VBA 相关插件, 但是本文使用的是 WPS Office,需要自行安装插件才能支持 VBA 功能, 如果找不到插件的下载地址,可以留言邮箱 WPS 中录制宏很简单,按下面步骤操作即可: 在 Excel 中点击 开发工具 -> 录制新宏从这一刻开始,对 Excel 的操作都会被录制下来,想停止时点击结束录制即可附上一张 WPS 中录制宏的完整操作动图,录制的内容是,为 C1 单元格添加 =SUM(A1,B1) 表达式: 2. 其他 Excel 工作簿中使用录制好的宏 WPS 中使用宏同样简单,按下面步骤操作即可: 打开带有宏的 Excel 工作簿打开要使用宏的工作簿在要使用宏的工作簿中点击 开发工具-> VB宏 -> 按名称选择要使用的宏 -> 运行即可附上一张 WPS 中使用宏的完整操作动图,宏的内容是,为 C1 单元格添加 =SUM(A1,B1) 表达式:
3. 查看录制宏后自动生成的 VBA 代码 WPS 中查看宏对应的 VBA 代码,按下面步骤操作即可: 打开带有宏的 Excel 工作簿在要使用宏的工作簿中点击 开发工具-> VB宏 -> 按名称选择要使用的宏 -> 编辑附上一张 WPS 中查看宏自动生成的 VBA 代码的动图:
不论是 Microsoft Office 还是 WPS Office,VBA 代码是通用的,一般习惯使用 Visual Basic 编辑器来编写 VBA 代 码,在 WPS 中打开 Visual Basic 编辑器的方式如下
Visual Basic 编辑器基本布局介绍 因为没想把 VBA 研究的太深,所以对于 VB 编辑器界面,简单了解下几个比较重要的地方就可以了 1. 代码书写的位置 2. 常用窗口 3. 其他常用窗口 语法 通过 Sub 关键字来定义过程,一个模块中可以定义多个过程,每个过程其实就是一个宏,都可以被单独使用, 也可以在一个过程内通过 Call 过程名 的方式调用另一个过程: Sub 过程名称() '过程内容 End Sub演示 在 Excel 中使用 VBA 代码一般有两种方式,一种是通过事件触发,一种是通过窗体控件触发,现在通过窗体控件 的方式演示一下如何使用 VBA 代码 1. 在模块中定义如下过程: Sub studyVBA() Sheet1.Cells(1, 1) = "今天开始学习VBA!!" End Sub2. 在 Excel 工作表中添加一个按钮,并为其指定宏(既我们定义的过程名称): 1. 数据类型 想定义变量首先得知道要定义的变量是什么类型,VBA 中有很多数据类型,常用的有: 类型名称关键字关键字简写整型Integer%长整型Long&单精度Single!双精度Double#字符型String$声明类型时个人不建议用简写的方式,VBA 中除了基本类型外,也支持对象类型 2. 定义变量 在 VBA 中声明变量常见的方式是 Public 和 Dim,Dim 声明的变量属于局部临时变量,其作用域为其所在结构体, Public 声明的变量一般定义在全局中,既不会定义在某个过程中 等后面学习类相关知识时,还会学习 Public 的其他用法,以及其他定义变量的方式 声明变量语法: Dim 变量名 As 数据类型 Public 变量名 As 数据类型声明变量演示: Public globalNum As Integer Sub studyVBA() Dim localNum As Integer End Sub变量赋值: 仅仅声明变量是不够的,我们还需要给变量赋值,给变量赋值分两种情况: 给基本类型的变量赋值,直接使用 变量名 = 值 的语法即可给对象类型的变量赋值,需要利用到 Set 关键字,语法为 Set 变量名 = 值变量赋值的演示: Sub studyVBA() ' 给基本类型变量赋值 Dim localNum As Integer localNum = 100 ' 给对象类型变量赋值 Dim obj As Range Set obj = Range("a1") End Sub 四、VBA - 函数 1. 普通函数定义普通函数的语法: Function 函数名称(参数1,参数2, 参数n) 逻辑代码 函数名称=返回值 End Function定义普通函数的示例: '定义函数 Function setValue(num1, num2) setValue = num1 + num2 End Function调用普通函数的示例: 1. 在过程中使用定义好的函数 '在过程中调用函数 Sub invoke() Sheet1.Cells(1, 1) = setValue(1, 2) End Sub2. 在 Excel 中以函数表达式的方式使用定义好的函数 可选参数的函数:定义函数时,指定参数为可选,调用函数时该参数就可传,可不传 定义可选参数的函数 - 语法: Function 函数名称(参数1,Optional 参数2 as 类型,参数n) 逻辑代码 函数名称=返回值 End Function定义可选参数的函数 - 示例: '定义函数 Function setValue(num1, Optional num2 As Integer) setValue = num1 + num2 End Function调用可选参数的函数 - 示例: 与调用普通函数没有区别,只不过参数可以选填 '在过程中调用函数,选择不传入第二个参数 Sub invoke() Sheet1.Cells(1, 1) = setValue(5) End Sub 3. 参数有默认值的函数参数有默认值的函数:在可选参数的函数基础上,为没有传值的参数设置默认值 定义参数有默认值的函数 - 语法: Function 函数名称(参数1,Optional 参数2 as 类型 = 默认值,参数n) 逻辑代码 函数名称=返回值 End Function定义参数有默认值的函数 - 示例: '定义函数 Function setValue(num1, Optional num2 As Integer = 100) setValue = num1 + num2 End Function调用参数有默认值的函数 - 示例: '在过程中调用函数,选择不传入第二个参数 Sub invoke() Sheet1.Cells(1, 1) = setValue(5) End Sub 4. 调用函数时指定参数名称传值当调用函数时,如不想按照参数列表的顺序传入参数值,也可以使用 函数名(参数名:=参数值) 这种指定参数名称的格 式进行函数调用 示例 Sub invoke() Sheet1.Cells(1, 1) = setValue(num2:=100, num1:=200) End Sub 5. 不定长参数列表的函数当定义函数时,参数数量无法确定,需要在函数调用时由调用者决定,这种场景可用不定长参数列表的函数 不定长参数列表的函数 - 语法 不定长参数列表的函数是将传递过来的参数变化成数组 Function 函数名(ParamArray 参数名()) End Function示例 定义不定长参数列表的函数 '定义函数 Function setValue(ParamArray params()) For Each Item In params Debug.Print Item Next End Function调用不定长参数列表的函数 '调用函数 Sub invoke() '不需要返回值时参数列表不需要小括号 setValue 5, 6 '需要返回值时参数列表必须有小括号 Dim returnVal As Integer returnVal = setValue(5, 6) End Sub不管哪种方式的函数定义,在调用时如果想使用函数返回值,在调用时就必须将参数列表写在小括号里, 如果不想 使用返回值,调用处可以将小括号省略 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |