打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【Excel VBA】批量改变单元格部分字符格式
有个朋友问能不能批量将单元格中的部分字符改变格式,比如改变字体,字号,改变颜色……

举个例子,如下图所示,将“领导”两个字……字体变成15号,加粗且变成血红色……


干了这碗毒鸡汤,天黑就闭眼……

.
代码如下:
Sub MyCharacters()    'ExcelHome技术论坛VBA编程学习与实践:看见星光    Dim arr, s$, i&, l&, n&    s = '领导' '需要改变格式的字符串    n = Len(s) '变量s的长度    arr = Range('a1:a' & Cells(Rows.Count, 1).End(xlUp).Row)    For i = 1 To UBound(arr)        l = InStr(1, arr(i, 1), s, vbTextCompare)        '查找变量s在arr(i,1)中首次出现的位置,不区分字母大小写        Do While l '如果l不为0,也就是存在s的话那么……            With Cells(i, 1).Characters(l, n).Font                 .Size = 15 '15号字体                 .FontStyle = '加粗'                 .Color = -16776961 '红色            End With            l = InStr(l + n, arr(i, 1), s, vbTextCompare)            '寻找变量s下一个出现的位置        Loop    Next    MsgBox '处理完毕!'End Sub

小贴士:

1,代码使用了characters对象。其语法是Characters(start, length),其中 start 为起始字符号,而 length 为要返回的字符个数。

2,代码使用了instr函数查找指定字符在字符串中最先出现的位置,其语法是InStr([start],string1, string2, [compare])。

start是可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果指定了 compare 参数,则一定要有 start 参数,例如本例小代码。

string1是必要参数。接受搜索的字符串表达式。

string2是必要参数。被搜索的字符串表达式。

Compare可选参数。指定字符串比较。简单理解,如果省略则区分字母大小写,如果指定参数为vbTextCompare则忽略字母大小写。

3,坦白的说,Excel 和VBA处理这类问题的效率并不高,即便搭配正则,效率同样还是不高。处理这类问题最高效的方法是——找隔壁老王Word呀,它才是文档排版的绝对高手——。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA Find函数的常见用法
学习VBA,报表做到飞 第二章 数组 2.3 Split与Join
Excel|VBA:instr函数常见用法参考
VBA学习实践——用VBA实现Excel格数据分列功能
Excel VBA高级自定义字符串连接函数 仿Office365中Textjoin函数 合并字符 |...
Instr函数的用法 | VBA实例教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服