从0学Excel VBA编程 第6篇:单元格读写操作——让数据在代码中流动
每天10分钟,从今天开始,你的代码将真正"读写"Excel数据,不再只是选中格子了。
学习目标
知识点精讲
读取单元格的值
上一篇我们学了 .Value 的写法(Cells(行, 列).Value = "你好"),那是"写入"。读取也很简单——反过来用就行:
Dim 内容 As String内容 = Range("A1").Value ' 把 A1 的值读出来,存到变量"内容"里
核心思路:等号 = 在 VBA 里是"赋值"——右边的值给左边。
- 写入:
Range("A1").Value = 内容(右边给左边格子) - 读取:
内容 = Range("A1").Value(右边格子给左边变量)
写入数据
往格子里写东西,用 .Value:
Range("A1").Value = "你好" ' 写入文字Range("A2").Value = 100 ' 写入数字Range("A3").Value = True ' 写入逻辑值
文字要加双引号 " ",数字和 True/False 不用加。
写入公式
除了写固定的值,还能写 Excel 公式。用 .Formula 属性:
Range("C1").Formula = "=A1+B1" ' 在 C1 写入公式 =A1+B1
公式要以等号 = 开头,和你在 Excel 单元格里手输公式一样。
修改格式
VBA 还能改格子的"长相"——字体、颜色、对齐:
Range("A1").Font.Name = "微软雅黑" ' 字体Range("A1").Font.Size = 14 ' 字号Range("A1").Font.Bold = True ' 加粗Range("A1").Font.Color = RGB(255, 0, 0) ' 字体颜色:红色Range("A1").Interior.Color = RGB(255, 255, 0) ' 背景色:黄色Range("A1").HorizontalAlignment = xlCenter ' 水平居中
HorizontalAlignment 管水平对齐方式RGB(红, 绿, 蓝) 是颜色的表示方法,每个数字 0~255。比如 RGB(255, 0, 0) 是纯红,RGB(0, 255, 0) 是纯绿
【SVG 示意图】
实战案例
案例1:读取并计算(简单)
功能说明:在 A1 写入数字 50,在 B1 写入数字 30,用 VBA 读取这两个格子的值,计算它们的和,把结果写入 C1,最后弹窗显示计算过程。
操作步骤:
- 点击"插入" → "模块"(如果已有模块可直接用)
' =================================' 案例1:读取单元格的值并计算' =================================Sub 读取并计算() Dim 数字A As Long Dim 数字B As Long Dim 结果 As Long ' 先在 A1 和 B1 写入数据 Range("A1").Value = 50 Range("B1").Value = 30 ' 读取 A1 和 B1 的值到变量里 数字A = Range("A1").Value 数字B = Range("B1").Value ' 计算 结果 = 数字A + 数字B ' 把结果写入 C1 Range("C1").Value = 结果 ' 弹窗显示过程 MsgBox "A1 = " & 数字A & vbCrLf & _ "B1 = " & 数字B & vbCrLf & _ "A1 + B1 = " & 结果 & vbCrLf & _ "结果已写入 C1", vbInformation, "计算完成"End Sub
结果:A1 显示 50,B1 显示 30,C1 显示 80,弹窗显示完整计算过程。
代码讲解:
- 先用
.Value = 写入数据,再用 变量 = .Value 读取数据,一读一写就是数据在"流动" 数字A + 数字B 就是普通加法运算,结果存到 结果 变量里- 读取的好处是:格子里数据变了,代码不用改,自动取最新值来算
案例2:写入公式并设置格式(中等)
功能说明:在 A1 到 A5 分别写入5个数字,在 A6 写入求和公式 =SUM(A1:A5),然后把 A6 设置为:微软雅黑、14号字、加粗、红色字体、黄色背景、水平居中——让结果一目了然。
操作步骤:
' =================================' 案例2:写入公式并美化格式' =================================Sub 写入公式并美化() ' 第一步:在 A1 到 A5 写入5个数字 Range("A1").Value = 10 Range("A2").Value = 20 Range("A3").Value = 30 Range("A4").Value = 40 Range("A5").Value = 50 ' 第二步:在 A6 写入求和公式 Range("A6").Formula = "=SUM(A1:A5)" ' 第三步:美化 A6 的格式 Range("A6").Font.Name = "微软雅黑" ' 字体 Range("A6").Font.Size = 14 ' 字号 Range("A6").Font.Bold = True ' 加粗 Range("A6").Font.Color = RGB(255, 0, 0) ' 红色字体 Range("A6").Interior.Color = RGB(255, 255, 0) ' 黄色背景 Range("A6").HorizontalAlignment = xlCenter ' 水平居中 ' 弹窗提示 MsgBox "已在 A6 写入公式 =SUM(A1:A5)" & vbCrLf & _ "并设置了红色加粗字体 + 黄色背景 + 居中", vbInformation, "完成"End Sub
结果:A1 到 A5 分别显示 10~50,A6 显示 150(自动求和),字体红色加粗、背景黄色、居中显示。
代码讲解:
.Formula = "=SUM(A1:A5)" 写入的是 Excel 公式,和手输 =SUM(A1:A5) 效果完全一样- 公式写入后,Excel 会自动计算结果,不需要 VBA 去算
- 格式设置都是"属性 = 值"的模式:
对象.属性 = 值,和写数据一个套路 RGB(255, 0, 0) 红色、RGB(255, 255, 0) 黄色,颜色三个数字分别代表红、绿、蓝的量
案例3:实用小案例——自动生成报表表头(实用)
功能说明:一键在第一行生成报表表头:5个列标题(编号、姓名、部门、工资、日期),表头统一设置为微软雅黑、12号字、加粗、白字蓝底、居中,并把整列宽度设为合适宽度。这是实际工作中做报表的第一步。
操作步骤:
' =================================' 案例3:一键生成报表表头' =================================Sub 生成报表表头() ' 第一步:写入5个列标题 Range("A1").Value = "编号" Range("B1").Value = "姓名" Range("C1").Value = "部门" Range("D1").Value = "工资" Range("E1").Value = "日期" ' 第二步:统一设置 A1:E1 的格式 With Range("A1:E1") .Font.Name = "微软雅黑" .Font.Size = 12 .Font.Bold = True .Font.Color = RGB(255, 255, 255) ' 白色字体 .Interior.Color = RGB(0, 112, 192) ' 蓝色背景 .HorizontalAlignment = xlCenter ' 水平居中 End With ' 第三步:自动调整列宽 Range("A1:E1").EntireColumn.AutoFit ' 弹窗提示 MsgBox "报表表头已生成!" & vbCrLf & _ "共5列:编号、姓名、部门、工资、日期" & vbCrLf & _ "白字蓝底,已自动调整列宽", vbInformation, "完成"End Sub
结果:第一行出现5个列标题,白字蓝底加粗居中,列宽自动适应文字长度。
代码讲解:
With ... End With 是一个新语法,作用是"省得重复写同一个对象名"。With Range("A1:E1") 里面的 .Font.Name 等于 Range("A1:E1").Font.Name,每个以 . 开头的属性都自动加上前面的对象Range("A1:E1") 一次选中5个格子,格式设置会同时应用到所有格子——这就是批量操作.EntireColumn.AutoFit 自动调整整列宽度,让内容刚好显示完整,等价于双击列右边线RGB(0, 112, 192) 是一种比较好看的蓝色,以后做报表可以直接用
本篇小结
- 读取值:
变量 = Range("A1").Value,等号右边给左边 - 写入值:
Range("A1").Value = 内容,文字加引号,数字不用 - 写入公式:
Range("A1").Formula = "=SUM(A1:A5)",以等号开头 - 改格式:
.Font(字体)、.Interior(背景色)、.HorizontalAlignment(对齐) - 颜色:
RGB(红, 绿, 蓝),每个数字 0~255 - With语句:
With 对象 ... End With 避免重复写对象名,里面的属性以 . 开头
今天只需要记住一件事:
.Value 读写值,.Formula 写公式,.Font / .Interior 改格式——掌握了这三个,代码就能真正操作 Excel 数据了
下一篇内容预告
第7篇:条件判断 If 语句——让代码学会做选择
- 学会 If...Then...Else 双分支判断
- 下一篇开始,你的代码将拥有"思考"能力——根据不同情况做不同操作!
小贴士:With 语句非常适合一次性设置多个属性。凡是看到同一对象名重复出现3次以上,就该用 With 了。代码更短、运行也更快。