wpf datagrid 比较两个栏位的大小改变单元格颜色_【Excel VBA】批量改变单元格部分字符格式...

HI,大家好,我是星光。 有个朋友问能不能批量将单元格中的部分字符改变格式,比如改变字体,字号,改变颜色…… 举个例子,如下图所示,将“领导”两个字……字体变成15号,加粗且变成血红色…… 3c88756e3312fc0e14a07fce12109be8.png
干了这碗毒鸡汤,天黑就闭眼…… 88be5536f8a05eea3577a9b69986b85a.png. 代码如下:
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呀,它才是文档排版的绝对高手——。 案例文件下载百度网盘.. ▼ https://pan.baidu.com/s/1PqjsmOgPW8B43bTJ0_saBA  提取码: v9mm acd9d8d8632920650a2aca8a4d066bbc.png

超低价Excel终身会员:一次付费,资料永久学习,学习问题永久答疑……

往期教程推荐

计算不重复数据,这个函数最简单!

当Excel运行卡顿时,如何减肥?

这些问题用IF函数就太傻了……

什么是M函数?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值