Excel VBA如何将字符串中特定文本设置为粗体并放入单元格?

12

我想在字符串中设置一些文本的加粗效果。如何实现?

4个回答

23

通过使用字符。

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

我在单元格中混合了粗体文本,我想提取每个粗体子字符串。 - GPU..

6
我建议使用这个动态公式 -
Range("A1").Characters(worksheetfunction.find("Excel",Range("A1").value,1),len("Excel")).font.bold = True

1

对于需要快速解决问题且不熟悉使用VBA的人,另一种方法是:

  1. 将单元格范围复制并粘贴到Word文档中(一开始看起来可能会很混乱)。
  2. 进入“替换”(右上角)。
  3. 在“查找内容:”字段和“替换为:”字段中键入要加粗的单词,然后当您在“替换为:”框中时按下CTRL B。您应该会看到“格式:字体:粗体”出现在其下面。
  4. 点击“全部替换”,您应该会看到所有目标单词都变为粗体。
  5. 将鼠标悬停在Excel文本上(当前在Word中),您应该会看到一个由4个箭头组成的小符号出现在文本的左上方。单击它以突出显示单元格,然后可以将它们复制并粘贴回Excel。

虽然不是最快的方法,但如果您不熟悉VBA并需要快速解决问题,这个方法适合您!

不仅限于加粗: CTRL I表示斜体,CTRL U表示下划线。


0

如果您需要加粗多个特定文本,请尝试以下方法:

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

此解决方案的源代码来自:http://www.vbaexpress.com/forum/showthread.php?52245-Make-specific-text-bold-in-cells


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接