简体   繁体   English

Excel vba将字符串的粗体特定文本设置到单元格中?

[英]Excel vba set bold specific text of string into the cell?

我想在字符串中加粗一些文本。我该怎么做?

通过使用字符。

Range("A1").Characters(8, 5).Font.Bold = True

我会说使用这个动态公式 -

Range("A1").Characters(worksheetfunction.find("Excel",Range("A1").value,1),len("Excel")).font.bold = True

Another way for people who need a quick fix and aren't comfortable using VBA:对于需要快速修复并且不习惯使用 VBA 的人的另一种方法:

  1. Copy and paste the cell range into a word document (it will look messy at first).将单元格范围复制并粘贴到 Word 文档中(一开始会看起来很乱)。
  2. Go to "replace" (top right).转到“替换”(右上角)。
  3. Type the word you want to make bold into the "Find what:" field and the same into the "Replace with:" field, then when you are on the "Replace With:" box press CTRL B. You should see "Format: Font: Bold" appear beneath it.在“查找内容:”字段中输入要加粗的单词,在“替换为:”字段中输入相同内容,然后在“替换为:”框中按 CTRL B。您应该看到“格式:字体:粗体”出现在其下方。
  4. Click Replace All and you should see all the targeted words go bold.单击全部替换,您应该会看到所有目标词都变为粗体。
  5. Hover over your Excel text (currently in Word) and you should see a small symbol of 4 arrows appear at the top left of the text.将鼠标悬停在 Excel 文本(当前在 Word 中)上,您应该会看到文本左上角出现一个由 4 个箭头组成的小符号。 Click that to highlight the cells, then you can copy them and paste back into excel.单击它以突出显示单元格,然后您可以复制它们并粘贴回 Excel。

Not the fastest way but if you're not familiar with VBA and need a quick fix this will work for you!不是最快的方法,但如果您不熟悉 VBA 并且需要快速修复,这对您有用!

Not just for Bold: CTRL I for italics, CTRL U for underlined.不仅仅是粗体:CTRL I 表示斜体,CTRL U 表示下划线。

Try this if you need to bold multiple specific text:如果您需要加粗多个特定文本,请尝试此操作:

Sub Find_and_Bold()
Dim rCell As Range, sToFind As String, iSeek As Long
Dim Text(1 To 4) As String
Dim i As Integer


Text(1) = "text1"
Text(2) = "text2"
Text(3) = "text3"
Text(4) = "text4"


For Each rCell In Range("C7:C1000")
    For i = LBound(Text) To UBound(Text)
            sToFind = Text(i)
            iSeek = InStr(1, rCell.Value, sToFind)
        Do While iSeek > 0
            rCell.Characters(iSeek, Len(sToFind)).Font.Bold = True
            iSeek = InStr(iSeek + 1, rCell.Value, sToFind)
        Loop
    Next i
Next rCell

End Sub

The source for this solution is from: http://www.vbaexpress.com/forum/showthread.php?52245-Make-specific-text-bold-in-cells此解决方案的来源来自: http : //www.vbaexpress.com/forum/showthread.php?52245-Make-specific-text-bold-in-cells

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM