繁体   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

对于需要快速修复并且不习惯使用 VBA 的人的另一种方法:

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

不是最快的方法,但如果您不熟悉 VBA 并且需要快速修复,这对您有用!

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

如果您需要加粗多个特定文本,请尝试此操作:

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

暂无
暂无

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

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