在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

问如何在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/通用格式

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