问如何在excel中将一列中所有带括号里面的文字字体变成红颜,色?

Option Explicit

Sub ColorRed()
Dim rng As Range
Dim sp As Integer, ep As Integer, le As Integer
For Each rng In Selection
If rng.Value <> "" Then
sp = IIf(InStr(1, rng.Value, "[") > 0, InStr(1, rng.Value, "["), InStr(1, rng.Value, "["))
ep = IIf(InStr(1, rng.Value, "]") > 0, InStr(1, rng.Value, "]"), InStr(1, rng.Value, "]"))
le = ep - sp + 1
If sp > 0 And le > 0 Then
rng.Characters(sp, le).Font.Color = vbRed
End If
End If
Next rng
End Sub
上文文代码可以实现第一个中括号中内容为红色,怎么循环应用(在一个格子中出现复数的中括号)
最新回答
月光很浅思念很暖

2024-10-18 07:35:55

Sub ColorRed()
Dim rng As Range
Dim sp As Integer, ep As Integer, le As Integer
For Each rng In Selection
If rng.Value <> "" Then
ep = 1: rng.Characters.Font.Color = vbBlack
Do
sp = InStr(ep, rng.Value, "[")
If sp = 0 Then Exit Do
ep = InStr(sp, rng.Value, "]")
sp = InStrRev(rng.Value, "[", ep)
le = ep - sp + 1
If sp > 0 And le > 0 Then
rng.Characters(sp, le).Font.Color = vbRed
Else
Exit Do
End If
Loop
End If
Next rng
End Sub
消失在我眼中

2024-10-18 07:30:23

可能需要07及以上版的excel 全选工作表-条件格式-公式=COUNTIF(1:1,"特定文字")>=1 格式:...,确定。
薄荷糖味的吻

2024-10-18 07:53:57

在一个数据表中,设置一定的条件,满足指定条件的单元格自动变色,而且指定的条件可能还不止一种,通常我们有几种解决方案呢?
案例:
下图 1 是全班同学的考试成绩表,请将所有不及格的分数设置为红色,90 分以上的设置为蓝色。
效果如下图 2 所示。

打开腾讯新闻,查看更多图片 >

解决方案 1:条件格式
1. 选中 B2:D14 区域 --> 选择菜单栏的“开始”-->“条件格式”-->“突出显示单元格规则”-->“小于”

2. 在弹出的对话框中将默认的值修改为 60 --> 在“设置为”下拉框中选择“红色文本”
3. 点击“确定”
所有低于 60 分的成绩都自动变成了红色。

4. 再次选中 B2:D14 区域 --> 选择菜单栏的“开始”-->“条件格式”-->“突出显示单元格规则”-->“大于”
5. 在弹出的对话框中将值修改为 90 --> 在“设置为”下拉框中选择“自定义格式...”

6. 在弹出的对话框中选择“字体”选项卡 --> 将字体颜色设置为蓝色 --> 点击“确定”

7. 点击“确定”
以下就是设置完成的效果。
解决方案 2:设置单元格格式
1. 选中 B2:D14 区域 --> 按 Ctrl+1

2. 在弹出的对话框中选择“数字”选项卡 --> 选择“自定义”--> 在“类型”区域输入以下类型 --> 点击“确定”:
[红色][90]0;G/通用格式

同样实现了自动改变字体颜色的效果。