神奇的条件格式,也许是个BUG

2024-03-12 08:18
文章标签 条件 格式 bug 神奇 也许

本文主要是介绍神奇的条件格式,也许是个BUG,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

工作中有如图所示数据,设置了简单的条件格式,如果单元格中包含Excel,那么该单元格字体为红色,如下图所示。

在这里插入图片描述

现在希望突出显示关键字Excel,将其字体颜色设置为绿色。手工操作并复杂,按F2键,单元格进入编辑状态,选中关键字,然后设置字体颜色,易如反掌,如下图所示。
在这里插入图片描述

如果有大量的数据需要进行这个操作,那么就太耗费时间了,为啥不用VBA来实现,这个代码想必也不会太复杂。

示例代码如下。

Sub Demo1()strKey = "Excel"For Each Rng In [a1].CurrentRegioniLoc = InStr(Rng.Value, strKey)If iLoc > 0 ThenRng.Characters(Start:=iLoc, Length:=Len(strKey)).Font.Color = vbGreenEnd IfNext
End Sub

【代码解析】
第3行代码循环遍历单元格。
第4行代码查找关键字位置。
第6行代码设置关键字字体颜色为绿色。

运行代码,A1单元格就像中了邪,没有任何反应,理想很丰满现实很骨干。
在这里插入图片描述

经过反复尝试,发现只要关键字在单元格的起始位置,那么这个代码就无法改变关键字的字体颜色,只能认为这是Excel的一个BUG。

既然找到了规律,那么可以用变通的方式来实现。

Sub Demo2()strKey = "Excel"For Each Rng In [a1].CurrentRegionRng.Value = Chr(32) & Rng.ValueiLoc = InStr(Rng.Value, strKey)If iLoc > 0 ThenRng.Characters(Start:=1, Length:=0).Font.ColorIndex = xlAutomaticRng.Characters(Start:=iLoc, Length:=Len(strKey)).Font.Color = vbGreenEnd IfNext
End Sub

【代码解析】
第4行代码在单元格中增加一个前导空格。
第7行代码看似无用,但是没有此行代码,A1单元格仍然无法实现关键字变色的效果。

运行代码,如下图所示,虽然不完美,但是基本上实现要求。
在这里插入图片描述

在试图恢复单元格内容时,发现了一个有趣的现象。

Sub RemoveSpace()For Each Rng In [a1].CurrentRegionRng.Value = Trim(Rng)Next
End Sub

代码非常简单,就是移除单元格中的前导空格,但是关键字高亮的效果也就跟随消失。

在这里插入图片描述


如果大家也遇到类似的问题,那么拿去用吧,不要问为什么,我也不知道 😛
如果某位高手知道其中的原因,烦请在评论区留言赐教,拜谢!

这篇关于神奇的条件格式,也许是个BUG的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/800651

相关文章

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没