办公问答网

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 77|回复: 1

如何批量替换Excel单元格中的部分字符,并单独标记颜色 ...

[复制链接]

3

主题

9

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2023-1-8 15:32:17 | 显示全部楼层 |阅读模式
又到问答时间,今天的问题来源于一位同事。



替换部分字符,并对新的字符标记颜色。这个操作通常出现在一些需要进行版本记录的文件中。
类似的需求还有将需要删除的字符加上删除线标记。目的是让修改内容更易识别。
很显然,需要用到VBA来实现。

先看完成效果。



再讲原理。
Excel中的查找替换相应所有人都用过,是支持按指定格式进行查找或替换的。
但只支持以单元格为单位,并不支持仅修改单元格内部分字符的格式。

手工设置时,是可以设置的。
所以并不是Excel不支持,只是没有提供相应的快捷操作命令。

在VBA中,可以通过Range.Characters属性配合Font对象来设置。

Range.Characters属性
语法
Range.Characters(Start,Length)
- Start:可选。要返回的第一个字符所在的位置。参数省略时默认为1。
- Length:可选。要返回的字符长度。参数省略时默认返回Start字符之后的所有字符。

例如,如下示例,将Sheet1中A1单元格第三个字符的格式设为加粗。



Font对象还有很多其它的属性,常见的几个属性如下。
.Font.Bold加粗
.Font.Color字体颜色
.Font.ColorIndex字体颜色
.Font.FontStyle字体样式(常规/倾斜/加粗/加粗/倾斜)
.Font.Italic斜体
.Font.Name字体名称
.Font.Size字体大小
.Font.Strikethrough删除线
.Font.Subscript下标
.Font.Superscript上标
.Font.Underline下划线


当然,最终是需要进行批量替换的,还得写一段循环的代码。
这里提供此案例的代码,以供参考。



也可以直接下载案例源文件,查看相应代码。

关注公众号,后台私信回复:批量替换,获取文件链接。
回复

使用道具 举报

1

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2025-6-11 01:04:08 | 显示全部楼层
发发呆,回回帖,工作结束~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|办公问答网

GMT+8, 2025-7-4 20:06 , Processed in 0.092414 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Templated By 【未来科技 www.veikei.com】设计

快速回复 返回顶部 返回列表