Excel VBA的Font对象:让你的表格字体“戏精附体”
还在手动调字体?VBA表示:这届用户不行。
大家好,我是你们的老朋友,一个把Excel玩成“字体变装秀”的资深表哥。
今天咱们聊点让单元格“开口说话”的东西——Font对象。
别被“对象”两个字吓到,它不是让你相亲的那个对象,而是你随时可以“调戏”的字体管家。掌握了它,你的表格不仅能算数,还能靠“颜值”吃饭。
一、Font对象是什么?——字体的“遥控器”
简单说,Font对象就是单元格里所有字体属性的集合。就像你家里的空调遥控器,按一下调温度,按一下改风向。Font对象就是让你用VBA代码“隔空操作”字体。
你平时手动点的“加粗、倾斜、颜色、字号”,在VBA里全归Font管。
二、基础语法——别怕,就一行代码
语法简单到想哭:
Range(“A1”).Font.属性 = 值
翻译成人话:“A1单元格,你的字体,给我把某个属性改成某某值!”
举个例子,让A1单元格的字变红、加粗、字号20:
With Range(“A1”).Font
.Bold = True ‘ 加粗
.Size = 20 ‘ 字号20
.Color = RGB(255, 0, 0) ‘ 红色
End With
看到没?一个With语句搞定,比你手动点三下鼠标还快。
三、常用属性大全——把字体玩出花
我帮你整理了一张“戏精速查表”,拿走不谢:
|
属性 |
作用 |
示例代码 |
|
.Bold |
加粗 |
.Bold = True |
|
.Italic |
斜体 |
.Italic = True |
|
.Size |
字号 |
.Size = 14 |
|
.Name |
字体名称 |
.Name = “微软雅黑” |
|
.Color |
字体颜色 |
.Color = vbRed |
|
.ColorIndex |
颜色索引(简单) |
.ColorIndex = 3(红) |
|
.Underline |
下划线 |
.Underline = xlUnderlineStyleSingle |
|
.Strikethrough |
删除线 |
.Strikethrough = True |
|
.Subscript |
下标 |
.Subscript = True |
小贴士:vbRed、vbBlue、vbGreen是VBA内置的颜色常量,懒人专用。想自定义就用RGB(红,绿,蓝),比如RGB(255,192,0)是土豪金。
四、实战场景——别光看,练起来
场景1:一键标红所有负数
财务小姐姐的噩梦:几十行负数,一个一个标红?
Sub 标红负数()Dim rng As RangeFor Each rng In SelectionIf IsNumeric(rng.Value) And rng.Value < 0 Thenrng.Font.Color = vbRedrng.Font.Bold = TrueEnd IfNextEnd Sub
选中区域,按F5,负数秒变“红胖子”。
场景2:标题行自动“上妆”
每次做表都要调标题:加粗、居中、字号16、微软雅黑、深蓝色?
Sub 标题美容()With Rows(1).Font.Name = "微软雅黑".Size = 16.Bold = True.Color = RGB(0, 32, 96) ' 深蓝,高级感End WithRows(1).HorizontalAlignment = xlCenterEnd Sub
一键搞定,比女朋友化妆还快。
场景3:隔行“变脸”,告别眼瞎
看大表看串行?隔行改个浅灰色字体试试:
Sub 隔行变脸()Dim i As IntegerFor i = 1 To 100 Step 2Rows(i).Font.Color = RGB(128, 128, 128) ' 灰色NextEnd Sub
阅读舒适度暴涨200%。
五、高手进阶——别眨眼,这里有骚操作
技巧1:同一个单元格里不同字体
是的,你没看错。一个单元格可以部分字加粗、部分字红色。
With Range("A1").Value = "Excel真香".Characters(1, 5).Font.Bold = True ' “Excel”加粗.Characters(7, 2).Font.Color = vbRed ' “真香”变红End With
这就叫“字以类聚,人以群分”。
技巧2:动态条件格式(不用条件格式功能)
不想用自带的条件格式?自己写一个监听事件:
Private Sub Worksheet_Change(ByVal Target As Range)If Target.Column = 2 Then ' 第二列If Target.Value > 100 ThenTarget.Font.Color = vbRedTarget.Font.Bold = TrueElseTarget.Font.Color = vbBlackTarget.Font.Bold = FalseEnd IfEnd IfEnd Sub
贴到Sheet代码区,从此B列超过100自动“红脸提醒”。
六、避坑指南——过来人的血泪史
别全选整列循环字体,会卡到你怀疑人生。用.Cells配合区域操作。
颜色用RGB别用ColorIndex,后者只有56种丑色,RGB有1600万种高级色。
字体名称用英文,比如.Name = “Microsoft YaHei”,跨电脑不崩。
字号别小于8,否则同事会拿放大镜敲你头。
写在最后
Font对象就像是Excel里的化妆师,数据是骨架,字体是衣装。
会了这些代码,你不再是那个“手动调字体调到鼠标手”的苦逼表哥,而是一键批量改格式的VBA魔术师。
下次老板说“把这个表做得好看点”,你微微一笑,打开VBA编辑器,十行代码解决问题。
然后深藏功与名,继续摸鱼。
夜雨聆风