ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4658|回复: 15

[原创] 2020元旦献礼 单元格小工具之八——批量设置单元格内特定字符字体格式

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-12-26 16:12 | 显示全部楼层 |阅读模式
用VBA调用EXCEL内置对话框和vbs正则表达式,设计出的一个加载宏实用小工具,对单元格内符合特定规则的字符批量设置字体格式。

批量字体格式.rar (14.36 KB, 下载次数: 111)


功能特点如下:
1、正则表达式中,如果不含捕获分组,则把所有匹配到的那些字符设置指定的字体格式;
2、正则表达式中,如果包含捕获分组,则仅把第一个捕获分组所匹配到的那些字符设置指定的字体格式。
3、所有的代码都是在同一个通用模块内完成,没有使用窗体。
4、可以设定的字体格式的内容包含:字体名称、样式(加粗、倾斜)、字号、颜色、下划线、删除线、上标、下标
5、自动忽略数值或包含公式的单元格。(因为数值型或含公式的单元格,只能整体设置字体格式,做不到仅设置其中特定字符的格式)
6、自动忽略掉不在工作表已经使用范围内的单元格。
7、对输入的正则表达式不规范或不支持的情况(比如:分组运算符不配对),自动提示并终止运行
8、在选择目标单元格时,可以最终确认执行或取消命令。

下面是演示过程:
1、为加载宏文件中的命令添加快速访问工具栏按钮
2、实例1——为直接配对的全角圆括号内的数值设置突出格式(红色、加粗)
3、实例2——为计量单位符号中的数字设置上标格式
4、为化学方程式中的分子式中的数字设置下标

布置两道练习题,感兴趣的坛友可以自己模拟数据练习一下:
a、为字符串中的重复字符设置删除线
b、为字符串中表示金额的数值(即紧接在字符“元”之前的数值)的小数部分设置上标和会计用双下划线。

指定按钮.gif


特定字符批量字体格式2.gif

计量单位中数字上标.gif


分子式中数字下标.gif








补充内容 (2020-7-1 17:58):
最新更新:2020-7-1 请移步16楼(已经置顶到下方)

评分

9

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-7-1 17:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
更新:
批量字体格式.rar (21.17 KB, 下载次数: 72)

TA的精华主题

TA的得分主题

发表于 2019-12-26 17:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-12-26 17:26 | 显示全部楼层
贴主一番辛苦,怎么样都要支持一下,但感觉用途是开发的人才知道怎么用的赶脚

TA的精华主题

TA的得分主题

发表于 2019-12-26 17:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好帖,支持。
不过确实如果不了解正则就没法用了,可以设置几个简单的可选项,比如选择数字或者字母或者汉字。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-26 18:09 | 显示全部楼层
Lonzo丶 发表于 2019-12-26 17:27
好帖,支持。
不过确实如果不了解正则就没法用了,可以设置几个简单的可选项,比如选择数字或者字母或者汉 ...

的确,要把这个工具用好,需要掌握正则表达式的基础知识。
但是,正则表达式掌握起来并不难,它也并不是开发人员的专利,网络上的“正则表达式30分钟入门教程”,看几遍,结合实例,就可以解决一些常见需求了。

在EXCEL中,需要设置单元格内部特定字符的字体格式的,主要就是计量单位中的数字上标、重复字符的删除线、金额数值中的小数部分的上标和会计用双下划线等。其它设置如字体加粗、倾斜、color等,都只是为了突出显示,一般没有实际意义。我把上面举例的几种情况的正则表达式列举出来,供用到它的人参考吧。

TA的精华主题

TA的得分主题

发表于 2019-12-26 18:19 | 显示全部楼层
本帖最后由 YZC51 于 2019-12-27 12:25 编辑

支持老师分享!谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-12-26 18:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 ggmmlol 于 2019-12-27 17:47 编辑

本工具中提供了一个正则表达式“模板”。该模板,我是以“万能公式”来称呼的。1楼的第一个实例“给成对的全角圆括号内的数值”设置格式,所输入的正则表达式,就是套用该模板来编写的,从gif动画中也可以看出来。

使用本工具的正则表达式“模板”编写正则表达式,可以加深对正则表达式的理解。

以下为本工具常用正则表达式

匹配成对全角圆括号内的数值(使用第1个捕获分组):
(?:)|^)[^(]*|(\d*\.?\d+)(?=[^()]*))

匹配计量单位符号中的数值(使用第1个捕获分组):
[A-Za-z](\d+)

匹配化学分子式中的数值(使用第1个捕获分组):
[A-Za-z)](\d+)

匹配金额数值中的小数部分(不使用捕获分组):
\.\d+(?=元)

匹配连续重复的汉字:
([一-龥]+)(?=\1)

匹配连续的重复的英语单词:
\b([a-zA-Z]+)(?= \1\b)

第1个实例比较复杂,全面展示了本工具的用法。因此,把此实例的表格附上,内含相应正则表达式的详细的解释说明。

突出成对全角圆括号内的数值.rar (10.33 KB, 下载次数: 29)

本主题现征集需要对单元格内特定字符批量设置字体的3至5个实例,本人将尝试用本工具帮助分析解答。解答的过程将录制gif动画上传,以供各位坛友在使用本工具时做为参考。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-12-26 19:06 | 显示全部楼层
microyip 发表于 2019-12-26 17:26
贴主一番辛苦,怎么样都要支持一下,但感觉用途是开发的人才知道怎么用的赶脚

同意你的感觉,工具之类的东东,应该能让完全不懂VBA的人能用,才有意义

TA的精华主题

TA的得分主题

发表于 2019-12-27 12:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-12-27 13:12 | 显示全部楼层
楼主厉害!正则已经让您给玩出花了!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-17 03:11 , Processed in 0.031929 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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