excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel批量将单元格内多个固定字符标记为红色!

周五,兴致勃勃将要下班回家嗨皮的小王被领导叫住了。领导说 “我的Excel中有一份人员名单,共计5000个单元格左右的姓名数据,我给你50个姓氏数据(如李,谢,叶等),帮我把这个50个姓氏字符在所有姓名数据中字体标红并加粗 小王给了领导一句: “给我1分钟的时间”领导顿时呆住了。。。 领导鼓捣了一下午没有完成的任务,没想到听到小王回答只需要一分钟即可完成的答复后,感到倍感羞愧。没想到有20年工作经验的自己还不如刚来工作1年的孩子小王。顿时感到Excel对提高工作效率的重要性。 下面我们为了方便讲解思路,用几组简单的数据模拟还原一下复杂的工作场景,如下图所示: 最左边的表格区域为一份人员姓名的名单数据源中间F列是一些指定的姓氏数据:李、谢、叶。我们想要将这些指定的姓氏字符数据源中找出并批量将字体标红并加粗。形成最右边数据的效果。我们都知道: ①如果使用Excel的【查找和替换】功能的话,是无法实现对某个单元格内,部分文字的字体颜色等格式数据进行查找替换的。不信大家可以试试,这是Excel的一个硬伤。 ②如果我们将数据复制到Word中,使用Word文档的【查找和替换】功能,虽然可以实现对指定字符的字体颜色等格式数据的查找和替换,但是没有批量操作的功能,即在本例中要重复至少50次。而且在Excel和Word之间复制粘贴布局复杂的表格时,有造成数据混乱的可能。 所以在这里,我们来介绍使用VBA代码的方式快速解决今天这个问题。 步骤01.姓氏合并到一个单元格 我们先将F列中指定要标红并加粗的字符合并到一个单元格中,并在合并后的数据上加上中括号 我们在H2单元格输入函数公式: ="["&PHONETIC(F2:F4)&"]" PHONETIC函数可以将选定区域范围内的文本数据合并到一个单元格中; &连接符将中括号“[]”与合并后的数据连接起来。步骤02.进入VBA代码编辑器 鼠标右击工作表名称标签,点击【查看代码】命令(或按快捷键Alt+F11键)进入VBA代码编辑器的窗口。 步骤03.复制并粘贴代码 复制下面的那段VBA代码并粘贴至VBA代码编辑器窗口内。 步骤04.运行代码 点击代码器窗口上方的【运行-运行子过程/用户窗体】命令。 运行完成代码后即可实现: 将这些指定的姓氏字符:李、谢、叶,在数据源中批量将其字体标红并加粗。代码如下: Sub test() Dim rng As Range Set rg = CreateObject("vbscript.regexp") rg.Global = True rg.Pattern = [H2] With Range("A1:D7") .Font.Color = 0 .Font.Bold = 0 For Each rng In .Cells v = rng.Value Set mas = rg.Execute(v) For Each ma In mas With rng.Characters(1 + ma.firstindex, ma.Length).Font .Color = vbRed .Bold = True End With Next Next End With End Sub 3代码释义 01.指定条件区域 代码: rg.Pattern = [H2] 其中[H2]即我们合并姓氏数据到一个单元格后的单元格地址H2,注意单元格地址H2需加上中括号[]。02.确定数据源区域 代码: With Range("A1:D7") 其中A1:D7为我们需要操作的数据源区域A1:D703.字体颜色设置 代码: .Color = vbRed 其中vbRed代表红色字体。如果是绿色改成vbGreen。04.字体加粗设置 代码: .Bold = True 其中True代表字体加粗。如果取消加粗改为常规修改为False即可。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接