选取区域内的数据比较多,每个单元格里也有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