VBA和条件格式异常-Excel错误?

VBA和条件格式异常-Excel错误?,excel,vba,conditional-formatting,Excel,Vba,Conditional Formatting,我在Excel中遇到一个问题,如果单元格中的字符子集具有不同的颜色,则条件格式会产生不同的结果,具体取决于 通过手动编辑或使用VBA应用颜色 如果使用VBA,彩色字符的范围是否包括单元格中的第一个字符 我在Windows 10上的Office 365中使用Excel,这两个版本今天都已完全更新 在下面的屏幕截图中,单元格A1:A6具有条件格式规则 =NOT(ISBLANK(B1)) 在单元格A2和A3中,我通过手动编辑将前三个字符设置为红色。在A3中,触发条件格式时,前三个字符保持红色

我在Excel中遇到一个问题,如果单元格中的字符子集具有不同的颜色,则条件格式会产生不同的结果,具体取决于

  • 通过手动编辑或使用VBA应用颜色
  • 如果使用VBA,彩色字符的范围是否包括单元格中的第一个字符
我在Windows 10上的Office 365中使用Excel,这两个版本今天都已完全更新

在下面的屏幕截图中,单元格A1:A6具有条件格式规则

=NOT(ISBLANK(B1))

在单元格A2和A3中,我通过手动编辑将前三个字符设置为红色。在A3中,触发条件格式时,前三个字符保持红色

在单元格A4中,我使用宏将前三个字符设置为红色文本

Sub RedFirst()
    ActiveCell.Characters(1, 3).Font.Color = vbRed
End Sub
Sub RedNext()
    ActiveCell.Characters(2, 2).Font.Color = vbRed
End Sub
触发条件格式设置时,不会得到与A3相同的结果,前三个字符变为绿色(条件格式),而不是保持红色,其余文本保持黑色,而不是绿色,尽管所有文本都在条件格式中加下划线

在单元格A5中,我使用宏将第二个和第三个字符设置为红色文本

Sub RedFirst()
    ActiveCell.Characters(1, 3).Font.Color = vbRed
End Sub
Sub RedNext()
    ActiveCell.Characters(2, 2).Font.Color = vbRed
End Sub
现在,当触发条件格式设置时,使用宏设置颜色的字符保持红色,与手动更改文本颜色时相同。 单元格A6显示条件格式的结果,但未对任何文本应用不同的颜色

我认为A3和A4应该看起来一样,手动更改文本颜色或使用VBA不会有什么区别。我尝试过用VBA改变前n个字符的文本颜色的不同方法,但总是得到相同(奇数)的结果


是否有一种方法可以使用VBA设置前n个字符的颜色,而不会得到奇怪的条件格式结果?或者这真的是它应该如何工作?在我看来,这似乎是一个需要修复的程序错误。

可以复制,似乎是一个错误。看起来您找到了应用格式的某种操作顺序。您能否先使用VBA删除所有格式,然后根据您的规则应用新格式?我已经尝试了(a)应用字符格式(颜色),然后应用条件格式,以及(b)应用条件格式,然后应用字符格式。这没什么区别。只有当字符格式包含第一个字符时,才会出现奇数效果,这一事实使我认为这是一个bug,而不是由于操作顺序。