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

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

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

    使用方法:

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

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

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

    调用“宏对话框,选择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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-19
如果数字或者字母都是单独占一个单元格
那么定位选择或者筛选,然后进行设置字体
如果字母或者数字是单元格里的部分内容
联系使用vba进行处理吧
第2个回答  2015-07-05

execl2003版本可以这样子操作:

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

 

追问

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

第3个回答  2020-03-31
如果你的表格里面没有公式之类的东西,那么你复制到word,改好了在拷贝回去应该是最快的方法!
第4个回答  2015-07-05
上图给个效果看看追问

相似回答