VBA代码 - 查找和替换单个值的格式

VBA code - find and replace format of a single value

提问人:Rajiv Narula 提问时间:11/15/2023 最后编辑:BigBenRajiv Narula 更新时间:11/15/2023 访问量:65

问:

有人可以帮忙查找和替换单个数字的格式,即单元格的值为“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
Excel VBA 替换 格式 查找

评论

3赞 Tim Williams 11/15/2023
您需要使用 Instr() 来定位“11”,然后使用该集合来格式化单元格中的相关字符。Characters

答:

3赞 taller 11/15/2023 #1
  • 在 Excel 中用格式替换不会产生所需的结果。
  • 您需要找到每个单元格的关键字并更改其格式。
  • 在包含的单元格中查找数字是不可靠的。例如,如果单元格值为 ,则它意外地匹配了 的一部分并遗漏了最后一个 。将关键字更改为 会更可靠。1111,2,111,33,1111111,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