从0学Excel VBA编程 第3篇:变量和基本数据类型——让代码有"记忆"
每天10分钟,学会让代码"记住"数据,为后面自动化打下根基。
学习目标
知识点精讲
变量是什么?
变量就是给数据起个名字,让代码临时"记住"它。
你可以把它想象成一个个带标签的小盒子:
比如,你要算一笔订单的总价,需要记住"单价"、"数量"、"总价"这三个数。没变量的话,代码会乱成一团;有变量,代码就像填空一样清楚。
下面这个盒子就代表一个变量:
【SVG 示意图】
一个程序里可以有很多这样的"小盒子",每个盒子都独立存放自己的数据。
如何声明变量?
在 VBA 里,声明变量的固定写法是:
Dim 变量名 As 数据类型
Dim 是声明变量的关键字(你可以理解为"定义一个")
最常用的四种数据类型
| | | |
|---|
Integer | | | 10 |
Double | | | 12.5 |
String | | | "张三" |
Boolean | | | True |
变量命名规则
给变量起名要遵守三个规矩,否则代码会报错:
不能用 VBA 保留字(比如 Sub、End、Dim、As 这些已经代表特定含义的词)
赋值号 = 不是"等于"
在 VBA 代码里,= 表示"把右边的值放进左边的变量里",读作"赋值"。
销售额 = 12500.5
意思是:把数字 12500.5 放进名字叫"销售额"的变量里。
它不是数学里的"等于"。下面这行代码在数学里不通,但在 VBA 里很常见:
数量 = 数量 + 1
意思是:把"数量"原来的值加 1,再存回"数量"里。
实战案例
案例1:用变量记住你的名字(简单)
功能说明:声明一个文本型变量,存入一个名字,然后用弹窗打招呼。
操作步骤:
- 打开 Excel,按
Alt + F11 进入 VBA 编辑器
Sub 用变量打招呼() Dim 名字 As String 名字 = "张三" MsgBox "你好," & 名字 & "!欢迎学习 VBA。"End Sub
- 把光标放在代码任意位置,按
F5 运行(或回到 Excel 按 Alt + F8 运行)
结果:弹出一个消息框,显示"你好,张三!欢迎学习 VBA。"
代码讲解:
Dim 名字 As String:声明一个叫"名字"的文本型变量
案例2:商品计价与库存检查(中等)
功能说明:用多个变量存储商品的单价、数量、总价和库存是否足够,然后把所有信息一次性显示出来。
操作步骤:
- 在 VBA 编辑器中,点击"插入" → "模块"(如果已有模块,也可以继续在原模块下方粘贴)
Sub 商品计价与库存检查() Dim 单价 As Double Dim 数量 As Integer Dim 总价 As Double Dim 库存足够 As Boolean 单价 = 35.8 数量 = 8 总价 = 单价 * 数量 库存足够 = 数量 <= 20 MsgBox "商品:咖啡杯" & vbCrLf & _ "单价:" & 单价 & " 元" & vbCrLf & _ "数量:" & 数量 & vbCrLf & _ "总价:" & 总价 & " 元" & vbCrLf & _ "库存是否足够:" & 库存足够End Sub
结果:弹窗显示商品信息,其中"库存是否足够"显示为 True。
代码讲解:
Boolean 用来存"库存是否足够",结果只有 True 或 False_(下划线)放在行尾,表示这行代码还没写完,下一行继续
案例3:实用小案例——自动计算销售提成(实用)
功能说明:从 A1 单元格读取销售额,按 5% 计算提成金额,把结果写入 B1 单元格,并用弹窗告知用户。
操作步骤:
- 回到 Excel,在 A1 单元格输入任意销售额,例如
25800
Sub 自动计算销售提成() Dim 销售额 As Double Dim 提成比例 As Double Dim 提成金额 As Double ' 从 A1 单元格读取销售额 销售额 = Range("A1").Value ' 提成比例为 5% 提成比例 = 0.05 ' 计算提成 提成金额 = 销售额 * 提成比例 ' 把结果写入 B1 单元格 Range("B1").Value = 提成金额 MsgBox "销售额:" & 销售额 & " 元" & vbCrLf & _ "提成金额:" & 提成金额 & " 元" & vbCrLf & _ "结果已写入 B1 单元格。"End Sub
- 按
F5 运行宏(或按 Alt + F8 选择运行)
结果:B1 单元格出现 1290,弹窗显示计算详情。
代码讲解:
Range("A1").Value 表示读取 A1 单元格里的值Range("B1").Value = 提成金额 表示把计算结果写进 B1
本篇小结
- 变量是给数据起的名字,用
Dim 变量名 As 数据类型 声明
今天只需要记住三句话:
下一篇内容预告
第4篇:Sub过程和MsgBox——让代码会说话
- 深入理解
Sub 过程和 End Sub 的完整结构
小贴士:变量名最好取有含义的名字,比如用 销售额 而不要用 x。三个月后你再看代码,自己也能一眼看懂。