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属性,可参考以前的一些文章有介绍。
欢迎关注、收藏
---END---
最新评论