VBA学习笔记

本文详细介绍了VBA的基础概念,包括过程、模块、对象和属性、方法、数据类型、变量声明、常量、数组以及常用函数。通过学习,读者可以掌握VBA编程的基本语法和操作,为自动化办公提供基础。
摘要由CSDN通过智能技术生成

基本概念

用VBA代码把完成一个任务的所有操作保存起来就是一个VBA过程。一个过程可以有任意多的操作,可以有任意长的代码。例如Sub 过程和Function过程

模块是保存过程的地方,一个模块可以保存多个不同类型的过程。VBA程序一般保存在模块里,所以在编写程序前,应先添加一个模块来保存它。

用代码操作和控制的东西即为对象,如工作簿、工作表、单元格、图片、图表、透视表等。

每个对象都有属性,属性是对象包含的内容或特点。从对象的属性,可以了解该对角具有的性质和特点。如字体的颜色,颜色就是字体的属性;按钮的宽度,宽度就是按钮的属性。从对象的属性还可以了解到这个对象包含了哪些其他的对象。如Sheet1工作表的A1单元格,A1单元格就是Sheet1工作表的属性;A1单元格的内容,内容就是A1单元格的属性。在书写时,对象和属性之间用点(.)连接,对象在前,属性在后,如A1单元格的内容,用汉字表达为:A1.内容,代码为Range("A1").Value对象的某些属性也是对象,属性和对象是相对而言的。

每个对象都有方法,方法是指在对象上执行的某个动作。如选中 A1 单元格,“选中”是在 A1 单元格这个对象上执行的操作,就是 A1 单元格的方法。 对象和方法之间也用点 (.) 连接,对象在前,方法在后,如选中 A1 单元格写成代码为:Range(“A1”).Select

帮助:光标定位在关键字,按F1键打开帮助。

语法

数据类型

VBA里的数据类型有:字节型(Byte),整数型(Integer),长整数型(Long),单精度浮点型(Single),双精度浮点型(Double),货币型(Currency),小数型(Decimal),字符串型(String),日期型(Date),布尔型(Boolean)等,如表所示。

数据类型 存储空间(字符) 范围描述
Byte 1 保存 0 ~ 255 的整数
Boolean 2 保存逻辑判断的结果:True 或 False
Integer 2 保存 - 2768 ~ 32767 的整数
Long 4 保存 - 2147483648 ~ 2147483647 的整数
Single 4 负值范围:- 3.402823E38 ~ - 1.401298E- 45
正值范围:1.401298E‑ 45 ~ 3.402823E38
Double 8 负值范围:-1.79769313486232E308 ~ - 4.94065645841247E-324
正值范围:4.94065645841247E‑324 ~ 1.79769313486232E308
Currency 8 数值范围:- 922337203685477.5808 ~ 922337203685477.5807
Decimal 14 不含小数时:+/- 79228162514264337593543950335
包含小数时: +/- 7.9228162514264337593543950335
最小非零数字:+/- 0.0000000000000000000000000001
Date 8 日期范围:100 年 1 月 1 日~ 9999 年 12 月 31 日
时间范围:0:00:00 ~ 23:59:59
String( 变长 ) 10 字节加字符串长度 0 到大约 20 亿个字符
String( 定长 ) 字符串长度 1 到大约 65400 个字符
Object 4 对象变量,用来引用对象
Variant( 变体型 ) 除了定长 String 数据及用户定义类型外,可以包含任何种类的数据。如果是数值,最大可达 Double 的范围;如果是字符,与变长 String 的范围一样
用户自定义 每个元素的范围与它本身的数据类型的范围相同

变量声明

Dim 变量名 As 数据类型
如果要声明定长的String变量,就在声明时指定它可以存储的数据的长度,如:Dim str As Strimg*10

使用变量类型声明符
Dim Str$:在变量名称的后面加上 $,表示把该变量声明为String 类型的变量。
只有部分数据类型可以使用类型声明符,如表所示。

数据类型 类型声明字符
Integer %
Long &
Single !
Double #
Currency @
String $

声明多个变量
声明多个变量,可以写在同一个Dim后面,变量名之间用逗号隔开。
Dim str As String, nu As Integer,每个变量都要指定数据类型,如果不指定,默认为 Variant 类型。
也可以用不同的语句声明:
Dim str As String
Dim nu As Integer

强制声明所有变量
如果你担心编程时忘记声明变量,可以设置强制声明变量。设置了强制声明变量,如果执行的程序中有未声明的变量,程序不会运行,而且计算机会自动提醒你声明变量。
方法: 在模块的第一句手动输入代码:“Option Explicit”。

变量的作用域
如果使用 Public 语句声明变量,变量将被声明为公共变量Public str As String
如果想把变量声明为私有变量,声明它时请使用Private语句声明它。Private str As String
如果使用 Static 语句声明变量,变量将被声明为静态变量。在整个代码运行期间都会保留该变量的值。Static str As String
变量的作用域决定变量可以在哪个模块或过程中使用。VBA中的变量有3种不同级别的作用域,如表3所示。

作用域 描述
单个过程 在一个过程中使用 Dim 或 Static 语句声明的变量,作用域为本过程,即只有声明变量的语句所在的过程
可以使用它。这样的变量称为本地变量
单个模块 在模块的第一个过程之前使用 Dim 或 Private 语句声明的变量,作用域为声明变量的语句所在模块里的
所有过程,即该模块里所有的过程都可以使用它。这样的变量称为模块级变量
所有模块 在一个模块的第一个过程之前使用 Public 语名声明的变量,作用域为所有模块,即所有模块里的过程
都可以使用它。这样的变量称为公共变量

公共变量必须在模块对象中声明,在工作表、窗体等对象中,即使使用Public语句声明变量,该变量也只是模块级变量。

变量赋值
[Let] 变量名称 = 数据,Let 可以省略,即语句可为:变量名称 = 数据

 Sub szbn()
 	Dim str As String '声明 str 变量为 String 型
 	Let str = ”一起来学 VBA” '给变量赋值,let可省略
 	Range(“A1“).Value = str '将变量值写入活动工作表的 A1 单元格
 End Sub

给对象变量(Object型,如单元格)赋值时,必须带上 Set。Set 变量名称 = 对象

Sub dxbn()
Dim rng As Range '声变 rng 为 Range 变量
Set rng = Worksheets(”Sheet1”).Range(”A1”) '给变量赋值
rng.Value = “ 欢迎来到 ExcelHome 论坛 !“ '将文本写入变量指代的单元格
End Sub

常量

声明常量不但要指定常量的名称及数据类型,还要在声明的同时给常量赋值,并且赋值后的常量不能再重新赋值。Const 变量名称 As 数据类型 = 数值

同声名变量一样,在过程的中间使用Const语句声明的常量为本地常量,只可以在声明常量的过程里使用;如果在模块的第一个过程之前使用Const语句声明常量,该常量将被声明为模块级常量,该模块里的所有过程都可以使用它;如果想让声明的常量在所有模块中都能使用,应在模块里的第一个过程之前使用Public语句声明它

数组

声明数组除了要指定数组名称及数据类型,还应指定数组的大小。

Public|Dim 数组名 (a to b) As 数据类型Public 和 Dim 同时只能选用一个,使用不同的语句,声明的数组作用域不同。a 和 b 都是整数,分别是数组的起始和终止索引号,确定数组中元素的个数为 (b-a+1) 个。

数组赋值
给数组赋值时,要分别给数组里的每个元素赋值,赋值的方法与给变量赋值相同。

Dim6(1 To 50) 
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值