分享

Excel之VBA常用功能应用篇:VBA不同文字设置不同颜色和字体

 每天学学Excel 2022-02-15

Excel工作表中,每个单元格里的内容不同,但是想要每个单元格里的每个字符文本格式也不同,设置起来就有点麻烦了,怎么设置呢?

通常方法就是,选中要设置的字符,然后在工具栏上找到相应的格式选项。很简单,但是一项比较无趣的事情。

本节就将这一功能,用VBA代码来解释一下,其工作原理是怎样进行的。

首先看下图,本示例实现对文本字体、颜色、字号大小进行设置。根据自己需要可简单修改一下实现一键完成。

实现此功能将应用到一个对象:Characters

Range对象可返回Characters对象

语法:

Characters(Start,Lenght)

Start是字符串开始位置,Lenght是字符串长度。

如:

Range("A1").Characters(1,3)

直接返回A1单元格内第1个字符到第3个字符的一个Characters对象,假如A1单元格内容为"Jiang Mi",那么将返回一个"Jia",当然了,Jia只是这个对象的Text值。

代码:

Private Sub CommandButton1_Click()

Dim r As Range, rx As Range, i As Integer

Set rx = Range("B3:B8") '定义单元格区域

For Each r In rx

i = i + 1

r.Offset(0, 1).Value = r.Characters.Count '对象数量

With r.Characters(1, r.Characters.Count).Font '设置字符格式

.Size = 18

.Bold = True

.Color = QBColor(9)

End With

With r.Characters(i, 1)

.Text = VBA.UCase(r.Characters(i, 1).Text)

.Font.Color = RGB(233, 2, 2)

End With

Next r

End Sub

Characters对象有两个方法,一个是Delete,删除,一个是Insert,插入。

这两个方法都好理解,一个是把对象删除,一个是在对象前面插入字符串。

使用方法如下代码:

Private Sub CommandButton2_Click()

Dim r As Range

Set r = Range("B3:B8")

r.Characters(1, r.Characters.Count).Delete

End Sub

Private Sub CommandButton3_Click()

Dim r As Range, rx As Range, i As Integer

Set rx = Range("B3:B8")

For Each r In rx

i = i + 1

With r.Characters(1, 1) 'r.Characters.Count)

.Insert "A"

End With

Next r

End Sub

Characters对象属性主要是Font,因为是字符串操作,所以Font格式的设置就显得特别重要,关于Font属性,可参考以前的一些文章有介绍。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多