启明办公

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

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

[复制链接]

3

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-12-12 21:19:36 | 显示全部楼层 |阅读模式
又到问答时间,今天的问题来源于一位同事。



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


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



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

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

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|启明办公

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4

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