一篇文章,学完VBA基础知识

一篇文章,学完VBA基础知识

从今天开始,我将开始更新一系列关于VBA相关的内容,感兴趣的小伙伴可以持续关注哈。这一系列的坚持过程,既是知识输出,也是知识输入。想到大学老师的一句话“用输出,倒逼输入”。今天这篇文章就简单同大家分享一下VBA的基础知识。

1、VBA代码是什么样的?

下面的结构是VBA的一个基本结构,针对该基本结构,大家可以参考我之前写的文章VBA的语句结构(Sub)。基本结构相当于VBA的固定语法,大家后续编程的时候,大多都是编写“VBA语句”这部分内容。同时,从Sub开始到End Sub结束,这一部分我们称为VBA的一个过程。

Sub 名称()
  '说明
  VBA语句
End Sub

* VBA的一个大的特点就是,在中文版本的Excel中,VBA的一些代码是可以用汉字表示的,例如上述基本结构中的“名称”。这在其他编程语言中,基本是无法实现的。

2、关键字

关键字是VBA中特殊的符号(单词或字母),这些特殊的符号有固定的含义,在编写程序时,可以直接调用该特殊符号,从而实现某种功能。大家在编写VBA语句时,是不能用关键字作为变量的。例如上面提到的Sub就是一个关键字。另外,VBA中的关键字是不区分大小写的 ,无论你前面的字母如何输入,在最后都会被系统默认为首字母大写,其余小写的关键字。

3、标识符

个人理解的标识符就是一个变量名称,例如把1赋值给字母a,那么a就是标识符,后面如果需要用到1,则可以通过调用标识符a的方式来进行。标识符在设置时也要注意一下几点:

标识符的名称要有意义,当别人看到标识符,就知道什么意思。
例如,age = 18,通过标识符age我们可以判断这是一个年龄字段,储存着年龄信息。

4、数据类型一览表

VBA的目的就是用于处理数据的,但数据储存有多种形式。比如:数据、文本、日期等。下面就让我们一起学习这些数据类型吧。

数据类型字符声明字符储存大小数据范围数据形式声明语法
整型Integer%16位(2个字节)-32768~32767数字形式,表示整数Dim n%
长整型Long&32位(4个字节)-2147483648~2147483648数字形式,表示整数Dim n&
单精度浮点型Singel!32位(4个字节)比较广,可以满足日常需求数字形式,可表示小数Dim n!
双精度浮点型Double#64位(8个字节)更精确的数据,适合小数点后位数较多的数据数字形式,可表示小数Dim n#
货币形Currency@64位(8个字节)货币场景下,可以减少误差。数字形式,保存货币值Dim n@
字节型Byte8位(1个字节)0~255整数,不常用
字符串String字符序列文本
布尔型Boolean16位(2个字节)二元信息True 或 False
日期型Date64位(8个字节)100年1月1日~9999年12月31日浮点数字形式
对象型Object32位(4个字节)程序中的访问对象工作表、单元格等
变体型Variant不声明具体的变量类型可以代表任何变量类型

数据类型注意事项

1)Boolean类型:当其他数值类型转化为Boolean类型时,0转化为False,其他转化为True。当Boolean转化为数据类型时,False变成0,True变成-1。

2)日期型:日期文字需要用“#”括起来,例如#1 Jan 93#表示1993年1月1日。

3)对象型:表示引用的对象。例如一个工作表,操作OutLook等,可以把这些实际操作的软件,赋值给一个VBA变量,然后控制该软件运行。在给对象型变量赋值时,需要使用Set,具体案例如下:

Dim MyObject as Object
Set MyObject=Worksheets("sheet1")'将工作表赋值给MyObject,后面可以通过MyObject操作该工作表
Set MyObject = Nothing'结束后中断关联

5、自定义数据类型

数据类型的创建(自定义)方法如下:

Type product

    productname As String '产品名称为文本类型,所以设置为字符格式
    quantity As Integer '数量为整型,所以设置为整型格式
    price As Currency '价格为货币,所以设置为货币格式
    order As Integer '订购量为整数,所以设置为整型格式

End Type

这种方式其实是创建了一个变量类,类名是product,该类下有许多其他的变量。如果我们不需要定义一个类的话,通过Dim也是可以创建一个变量的,例如“Dim productname as string”,这种定义方式和上面是差不多的。

定义了上述变量后,我们可以通过下面的方式来为变量赋值

Sub test()
    Dim p1 As product
    p1.productname = "苹果汁"
    p1.price = 18
    p1.quantity = 39
    p1.order = 10
    Debug.Print p1.order
End Sub

上面我们定义P1的数据类型时,直接定义为了product,一般定义数据类型都是Dim p1 as string,as 后面是一个数据类型。这里可以定义为product,是因为在上面我们用type定义了一个product类型,所以这里可以定义为product,是我们自己创建的数据类型。

6、枚举类型

枚举就是将变量的值逐一列举出来,变量只能取列举的某一个值。例如我们枚举一个小学一年级至六年级的数据类型:

Enum grade
    一年级 = 1
    二年级
    三年级
    四年级
    五年级
    六年级
End Enum

这里设置一年级 = 1,是因为枚举的第一个常数为0,后面的常数比前面的大1,这样设置后可以使第一个常数为1。注意枚举类型的也是要写在“声明”里面。

下面,我们再看看一下枚举数据的输出:

Sub 使用枚举()
    Dim g1 As grade
    g1 = 一年级
    Debug.Print g1
    '这时输出值为1
End Sub

上述代码的输出值为1,也就是说枚举的汉字字符,在实际输出的时候是数字。而枚举的一大好处就是,当我们要给个g1赋值时,系统会显示出来,g1所有可选值,然后选择即可。枚举的另一个好处就是方面了代码的可读性。

枚举变量赋值时的系统提示

7、变量的作用域

变量的作用域是指变量可以被程序使用的范围,变量的作用域主要分为以下几种:

1)过程级别:称为局部变量。只能在过程中使用的变量。在其他sub过程中不能使用。

2)模块级别:称为模块变量。在模块的顶端定义的变量,在该模块的各sub过程中,都可以访问该变量。一般使用dim或者private关键字来定义。在声明部分进行定义。例如private productname as string

3)全局级别:称为全局变量。在整个应用程序内都可以使用的变量。一般用public关键字进行定义。在写程序时,全局变量要少用,避免程序的混乱。

以上,就是VBA的一些基础知识,期待下期再见,拜了个拜。

—End—

参考资料

《Excel VBA编程实战宝典》

  • 29
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值