excel表中选取区域内某几个数字批量字体变红

选取区域内的数据比较多,每个单元格里也有10个不同的数字,比如要把选取区域内的每个单元格里只要有235(每天要变红的数字不一样)三个数字的,都变红,每个单元格一个一个地操作工作量太大了。麻烦各位高手给写个代码,让我一次性把选取区域里想要变红的数字变红,拜托!!!
赏分可以加的,怕浪费,先悬这么多。
最新回答
人生如梦梦如烟

2025-02-25 05:44:39

考虑Excel自带功能无法很好地实现你要的功能,帮你写了段宏代码。

  • 使用方法:

  1. 调用“宏”对话窗:“开发工具”-"宏",会弹出该对话窗。

  2. 在宏对话窗里,“宏名”下的文本框里输入"chk",点击“创建”。

  3. 把下面的代码粘贴到chk过程里,保存。

  4. 调用“宏对话框,选择chk宏,点击“选项”命令按钮,设置热键,比如“Ctrl+m",确定后按“Ctrl+m"键,测试是否运行正常。

  • 附:宏代码

Sub chk()

Dim MyValue As Long, BgnPs As Long, Nums As Long

Dim sc As Range

On Error GoTo erExit

    MyValue = InputBox("输入查找值:", "突显指定单元")


    Nums = Len(Trim(Str(MyValue)))

    

    For Each sc In Selection

        BgnPs = InStr(1, sc.Value, MyValue)

       If BgnPs > 0 Then

             sc.Characters(Start:=BgnPs, Length:=Nums).Font.Color = vbRed

       End If

    Next

    Exit Sub

erExit: MsgBox "输入值必须是半角数字", vbOKOnly

End Sub


  • 附:效果图

追问
谢谢你前面的解答。
可能我的意思没表达清楚:我的意思是每个单元格里的数字都有10个,只是从0到9的顺序不同,比如,1247935086,2579416803等等,我只要每个单元格里的几个数字变红,比如257,不是整个单元格里的数字都变红。烦请你再写个宏代码,谢谢!
追答
你测试一下。我写的代码就是只高亮显示每个单元格里符合条件的数字。
我给出的数值都是每个单元格3组数字,比如显示的第一个单元格为:123222333,最终只有123高亮显示。
追问

我试过了,这段代码运行时,比如要267变红,含267的单元格的数字全变红了.

我想要单元格里的数字只要267这3个数字变红,其他的不变红,235三个数字没有顺序。如图效果。

追答
只有在文本格式时,才能对单元格内的单个字符进行字体及颜色等属性设置。
下面是我就你所提问题及要求,修改后的代码(代码将自动将所选单元格内数据转换为文本型数值):
Sub chk()
Dim inputVal$, curVal$, myVal$
Dim BgnPs As Long, Nums As Long, ln As Long, cx As Long, dx As Long

Dim sc As Range
On Error GoTo erExit

inputVal = Trim(Str(InputBox("输入查找值:", "突显指定数值")))
Nums = Len(inputVal)

For Each sc In Selection

sc.NumberFormatLocal = "@"

curVal = sc.Value
ln = Len(Trim(curVal))
sc.FormulaR1C1 = curVal
For dx = 1 To Nums

BgnPs = 1
myVal = Mid(inputVal, dx, 1)
For cx = 1 To ln
BgnPs = InStr(BgnPs, curVal, myVal)

If BgnPs > 0 Then
sc.Characters(Start:=BgnPs, Length:=1).Font.Color = vbRed
Else
Exit For
End If
BgnPs = BgnPs + 1
Next cx
Next dx
Next sc
Exit Sub

erExit: MsgBox "输入值必须是半角数字", vbOKOnly

End Sub
追问

这要怎么解决啊?

追答
我这里正常,你那里是什么情况?
追问
放到我的表里就这样了
追答
str函数的作用是把你输入的数字转换为字符串。如果你没有一点编程基础,把文件发我QQ邮箱里:908863143
良辰未赏透

2025-02-25 08:26:54

如果数字或者字母都是单独占一个单元格
那么定位选择或者筛选,然后进行设置字体
如果字母或者数字是单元格里的部分内容
联系使用vba进行处理吧
不要忘記

2025-02-25 07:57:14

execl2003版本可以这样子操作:

点击格式按钮选择图案页签选择你要颜色点确定。就可以了

 

追问

谢谢你前面的解答。
可能我的意思没表达清楚:我的意思是每个单元格里的数字都有10个,只是从0到9的顺序不同,比如,1247935086,2579416803等等,我只要每个单元格里的几个数字变红,比如257,不是整个单元格里的数字都变红。烦请你再写个宏代码,谢谢!

岁月并非如歌

2025-02-25 09:18:43

如果你的表格里面没有公式之类的东西,那么你复制到word,改好了在拷贝回去应该是最快的方法!
花若怜

2025-02-25 06:57:18

上图给个效果看看
追问