在单元格中更改为粗体重复文本

时间:2012-08-28 19:05:01

标签: excel excel-vba vba

我正在尝试编写一些将在excel单元格中查找的代码,如果它包含我要查找的单词并使其变为粗体。到目前为止我编写了以下代码

With Worksheets("Label Print").Cells(i, J)
.Characters(Start:=InStr(.Value, “Name”), Length:=Len(“Name”)).Font.Bold = True
End With

问题是,如果“名称”在单元格中出现两次(或更多次),它将仅突出显示它的第一次出现。

提前谢谢

1 个答案:

答案 0 :(得分:3)

这是一个功能,它需要检查单元格以及要搜索的单词并加粗该单词的所有情况:

Public Sub BoldWord(rngCell As Range, sWord As String)

  Dim iPlace As Integer

  iPlace = InStr(1, rngCell.Value, sWord, vbTextCompare)
  Do While iPlace > 0
    rngCell.Characters(Start:=iPlace, Length:=Len(sWord)).Font.Bold = True
    iPlace = InStr(iPlace + 1, rngCell.Value, sWord, vbTextCompare)
  Loop

End Sub

注1:rngCell必须是单个单元格。

注2:搜索不区分大小写...如有必要,请更改vbTextCompare。