提问人:Rajiv Narula 提问时间:11/15/2023 最后编辑:BigBenRajiv Narula 更新时间:11/15/2023 访问量:65
VBA代码 - 查找和替换单个值的格式
VBA code - find and replace format of a single value
问:
有人可以帮忙查找和替换单个数字的格式,即单元格的值为“1,10,11,5”,我是否希望着色和更改值 11 的格式,并希望保持其他值不变。查找和替换确实有效,但会更改整个单元格的字体和大小,而不仅仅是“11”。
Range("I2:M14").Select
Selection.Replace What:="11,", Replacement:="11,", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
答:
3赞
taller
11/15/2023
#1
- 在 Excel 中用格式替换不会产生所需的结果。
- 您需要找到每个单元格的关键字并更改其格式。
- 在包含的单元格中查找数字是不可靠的。例如,如果单元格值为 ,则它意外地匹配了 的一部分并遗漏了最后一个 。将关键字更改为 会更可靠。
11
11,
2,111,33,11
111
11
,11,
Option Explicit
Sub Demo()
Dim c As Range, sTxt As String, iLoc As Long
Const KEYWORD = ",11,"
For Each c In Range("I2:M14")
sTxt = c.Value
If Len(sTxt) > 0 Then
sTxt = "," & sTxt & ","
iLoc = InStr(sTxt, KEYWORD)
If iLoc > 0 Then
c.Characters(iLoc, Len(KEYWORD) - 2).Font.Color = vbRed
End If
End If
Next
End Sub
评论
Characters