VBA编程基础知识-提升工作效率

1. 基本概念

1.1 为什么要学习VBA

自动化操作。我们在使用Excel的过程中,经常会有这样的情况,会按照相同的方法完成信息录入,表格格式调整,信息处理,表格保存等简单、重复操作。我们可以使用VBA将这些操作转换为VBA程序代码,使工作自动化。

成果复用。Office中的应用程序可以共享VBA语言,如果你掌握了Word中使用VBA的方法,那么在Excel、PPT中使用Excel将变得非常容易,可以减少大量不必要的重复性工作,提高工作效率。

易于掌握。VBA的语法简单,学习门槛低。对于没有编程基础的小伙伴,依然可以录制宏来记录用户的各种操作,Office将自动将宏转换为VBA代码,非常容易掌握。(还不知道如何录制宏的小伙伴,请点击下方链接)

如何入门excel 宏?

功能强大。VBA可以调用Excel自带函数(数学与三角函数、日期与时间函数、查找与引用函数、逻辑函数、统计函数、文本函数、数据库函数),还可以自定义函数。VBA可以处理多种类型的数据,数值型、逻辑型等等。VBA支持处理工作簿、工作表、单元格等。

1.2 VBA究竟是什么

在介绍VBA之前,首先介绍VB。VB(Visual Basic)是Basic的第四代语言,是一种可视化、面向对象的结构化高级程序语言。

VBA与VB是什么关系呢?

VBA是VB的一个子集,VBA是VB与Office的结合。

VBA是新一代标准宏语言,VBA是Visual Basic for Applications的缩写,是在Office中执行通用的自动化任务的编程语言。VBA可以用于Word、Excel、PPT。

VBA与VB有什么区别呢?

  • VBA的开发依赖于Office环境,VB具有自己的开发环境。
  • VBA用于Office的自动化操作,VB是设计标准的Windows应用程序。
  • VBA开发的程序依赖于它的父程序(Office),运行VB生成的应用程序是标准的可执行程序(*.exe),运行时不依赖开发环境。

2. 数据类型

我们在使用VBA程序时,首先需要学习VBA的数据类型。根据数据的用途、类型的不同,VBA的数据类型可以划分为三大类:

2.1 数值型数据

字节型数据(Byte):存储为1字节,数值范围是0到255,用于存放少量的整数值。

整数型数据(Integer):存储为2字节,数值范围是-32768到32767,用于表示整数,是经常被使用的数据类型。

长整型数据(Long):存储为4字节,数值范围是-2147483648到2147483647,用于表示大型数据。

单精度浮点型数据(Single):存储为4字节,表示单精度浮点值,表示的负数范围是 -3.4 E38 ~ -1.4E-45,正数范围是: 1.4E-45~ 3.4E38

双精度浮点型数据(Double):存储为8字节,表示双精度浮点值,表示的负数范围是-1.7E308 到-4.9E-324,正数范围是4.9E-324到1.7E308。

2.2 字符串型数据

固定长度字符串:长度范围是1~64000个字符,长度是固定的。

可变长度字符串:长度范围是0~20亿个字符,长度是不固定的。

2.3 其它数据类型

日期型数据(Date):8个字节,表示范围:100年1月1日 - 9999年12月31日

货币型数据(Currency):8个字节

布尔型数据(Boolean):2个表示,表示范围:True和False


据说聪明的人在学习知识时,最喜欢做的事情就是双击屏幕。

3. 常量和变量
常量和变量是VBA中非常重要的两个概念,在程序执行过程中,不会发生改变的数据被称为常量,用于存储固定信息。会发生改变的数据被称为变量,用于存储临时保存的值。

3.1 常量

在编写程序的过程中,有些数据值不会改变,并且会在多个地方被引用,我们可以将他们定义为常量。

我们分两个步骤来讲解:第一步是声明,第二步是使用。

按照如下的语法格式进行声明

Const <符号常量> = <常量值>

下面的示例中,第1行代码就是声明1个常量,第5行代码就是如何使用这个常量。

Const Rate=0.52 
Dim Result As Double
Dim Original As Double
Original=100
Result = Original * Rate

3.2 变量

在程序执行过程中,某些数值会发生变化,这些临时数值被称为变量。变量包含名称数据类型两部分,通过变量名称就可以引用变量。

在使用变量之前,我们需要声明变量。

Dim 变量名 [As 数据类型]

在上面的声明语句中,Dim和As被称为声明变量的关键字。这里的变量名命名方式尽量与实际功能相符合,方便记忆。这里的数据类型请参考本文第2章。

这里举两个例子,第1句声明一个数据类型是整型的变量,变量名是Length,第2句声明一个数据类型是字符串的变量,变量名是SName。

Dim Length As Integer
Dim SName As String

4. 运算符

VBA程序是由一个个表达式组成的,而表达式是由操作数和运算符组成,这里的操作数可以是我们第3章介绍过的变量,也可以是常量。而运算符包括算术运算符、赋值运算符、比较运算符、连接运算符和逻辑运算符。

本章将对这些运算符逐个进行讲解。

4.1 算术运算符

算术运算符包括7种:加法、减法、乘法、除法、整除、指数、求余。

算术运算符

4.2 赋值运算符

赋值运算符就是等号,赋值运算符可以给变量赋值,也可以给对象的属性赋值。例如:

Dim SName As String
SName = "Company"

4.3 比较运算符

比较运算符通常用于比较两个数值的大小,比较两个表达式的大小,比较运算符的输出结果是布尔型数据。布尔型数据包括True或False,如果比较结果是真,则为True,如果比较结果为假,则为False。

比较运算符

4.4 连接运算符

连接运算符包括两种:&和+。连接运算符属于二元运算符,即运算符包括两个变量。

连接符&:不管什么类型的数据,&都将左右的变量当成是字符串,并将这两个字符串进行连接。

连接符+:当参与连接运算的两个变量是字符串时,+号才完成字符串连接的作用,否则被当成加法运算符。

举例说明:

SName="Today"&"_Duty",输出结果:SName=Today_Duty

SSequence="300"+"_180",输出结果:SSequence=300_180

4.5 逻辑运算符

逻辑运算符用于执行表达式之间的逻辑操作,结果是布尔型数据。常用的逻辑运算符包括“逻辑与”、“逻辑或”,“逻辑非”,“逻辑异或”。

逻辑运算符

当您看到这里的时候,说明您距离掌握VBA基础知识只差最后一步了,那就是双击屏幕。

5. 程序结构

学过C语言的同学们都知道,在C语言中,具备三种类型的程序结构:顺序结构、分支结构和循环结构。在VBA中也是一样,使用这三种程序结构就可以实现我们的算法处理流程

5.1 顺序语句

顺序结构是最基本的语句,顺序结构就是按照程序中的语句顺序逐条依次执行,顺序结构包括两种语句:赋值语句和声明语句。

赋值语句和声明语句,我们已经在前面详细介绍了,这里不再赘述。

5.2 分支语句

在实际程序执行的过程中,语句的执行顺序可能根据某些条件语句来判断。常见的条件语句包括单分支IF语句结构、双分支IF语句结构、多分支IF语句结构、Case语句结构。

单分支IF语句结构

在单分支IF语句结构中,当IF表达式执行结果为True时,执行后面的语句组,当表达式执行结果为False时,则直接跳过后面的语句组,语句执行流程如下图所示。

单分支IF语句结构

在程序中,我们使用下面的语法格式。

IF <条件表达式> Then
<语句组1>
End IF

双分支IF语句结构

我们在实际应用场景中,可能会遇到这样的情况,当不满足条件时,我们也需要执行某些语句组。当满足条件表达式时,执行语句组1,当不满足条件表达式时,执行语句组2。

双分支IF语句结构

在程序中,我们使用下面的语法结构

IF <条件表达式> Then
<语句组1>
Else
<语句组2>
End IF

多分支IF语句结构

有时候我们的逻辑决策不是一条,而是多条,我们在程序执行过程中,需要完成逻辑决策树的梳理。

实际的逻辑决策树执行流程是这样的:

1)当满足条件表达式1时,执行语句组1,当不满足条件表达式1时,跳转到第2)句;

2)当满足条件表达式2时,执行语句组2,当不满足条件表达式2时,跳转到第3)句;

3)...

4)当满足条件表达式N时,执行语句组N,当不满足条件表达式N时,执行语句组N+1。

在程序中,我们使用下面的语法结构:

IF <条件表达式1> Then
<语句组1>
Else IF <条件表达式1> Then
<语句组1>
...
...
Else IF <条件表达式N> Then
<语句组N>
Else
<语句组N+1>
Else

Case语句结构

我们刚刚学习了使用IF语句实现多分支IF语句结构,学过C语言的同学都知道,使用Case语句也可以完成多分支语句结构。

实际的逻辑决策树执行流程是这样的:

1)当满足条件表达式1时,执行语句组1,当不满足条件表达式1时,跳转到第2)句;

2)当满足条件表达式2时,执行语句组2,当不满足条件表达式2时,跳转到第3)句;

3)...

4)当满足条件表达式N时,执行语句组N,当不满足条件表达式N时,执行语句组N+1。

Case语句结构

在程序中,我们使用下面的语法结构:

Select Case 测试表达式
Case <条件表达式1>
     <语句组1>
Case <条件表达式2>
     <语句组2>
...
...
Case <条件表达式N>
     <语句组N>
Case Else
     <语句组N+1>
End Select

5.3 循环语句

我们在实际的VBA应用程序中,可能会遇到反复多次处理的问题,我们可以将这些反复处理的语句提取出来,再用循环语句进行嵌套。

循环语句总共包括三类:For-Next语句、Do-Loop语句、While-Wend语句。其中For-Next语句用于循环次数已知的情况,Do-Loop语句和While-Wend用于循环循环次数未知的情况。

For-Next语句

在VBA中,For-Next语句的实际执行情况是这样的:

1)用初值给循环变量赋值;

2)判断循环变量是否超过终值,如果循环变量超过终值,则退出For循环,如果循环变量未超过终值,则执行第3)步;

3)执行循环体,循环变量=循环变量+步长。

用流程图进行描述如下:

For-Next循环

在程序正常执行的情况下,For-Next循环次数是确定的,循环次数= 终值-初值)/步长+1。

我们在程序中,是这样进行调用的:

For <循环变量> = <初值> To <终值> ( Step < 步长>)
    <语句组1>
Next <循环变量>

Do-Loop语句

Do-Loop语句应用于循环次数未知的情况,主要包括4种循环语句:Do-While-Loop循环语句、Do-Until-Loop循环语句、Do-Loop-While循环语句、Do-Loop-Until循环语句。

(1)Do-While-Loop循环语句

程序实际执行流程是这样的:

1)先判断循环条件是否成立;

2)如果成立,则执行语句组1;

3)如果不成立,则跳出循环。

在调用程序语句时,结构是这样的:

Do While <循环条件>
   [循环语句]
Loop

(2)Do-Until-Loop循环语句

程序实际执行流程是这样的:

1)先判断循环条件是否成立;

2)如果不成立,则执行语句组1;

3)如果成立,则跳出循环。

Do Until <循环条件>
   [循环语句]
Loop

(3)Do-Loop-While循环语句

程序实际执行流程是这样的:

1)先执行循环体;

2)判断循环条件是否成立;

3)如果成立,则继续执行;

4)如果不成立,则跳出循环。

Do 
    [循环语句]
Loop While<循环条件>

(4)Do-Loop-Until循环语句

程序实际执行流程是这样的:

1)先执行循环体;

2)判断循环条件是否成立;

3)如果不成立,则继续执行;

4)如果成立,则跳出循环。

Do 
    [循环语句]
Loop Until<循环条件>

While-Wend语句

While-Wend语句同样适用于循环次数未知的情况。

程序实际执行流程是这样的:

1)先判断循环条件是否成立;

2)如果成立,则执行语句组1;

3)如果不成立,则跳出循环。

在调用程序语句时,结构是这样的:

While <循环条件>
   [循环语句]
Loop
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值