【问题标题】:Bolding Text with VBA使用 VBA 加粗文本
【发布时间】:2018-12-21 00:04:27
【问题描述】:

这是我正在使用的单元格公式:

="Charge: "&(UPPER(AG343))&"    "&" Charging Staff: "&(AH343)&"    "&" Charging Staff: "&(AI343)&"    "&" CAP_ID: "&(AJ343)

VBA 中是否有一种方法可以识别正在从对 Cell "B" 的引用中提取到 Cell "A" 的值,并在 Cell "A" 中将来自 Cell "B" 的引用的文本表示为粗体?

我已经看到有关 Excel 函数在处理文本方面的局限性的帖子。我不明白为什么我可以在单元格引用的结果或单元格公式中的一般文本上使用UPPER 函数,但不允许在公式中加粗文本。

VBA 中有没有一种方法可以将 Bold 属性应用于单元格中的文本?

有没有办法对单元格引用使用"ActiveCell.Characters" 属性来获取粗体文本?

【问题讨论】:

  • 您能做的最好的事情就是将公式格式化为粗体。您不能在带有公式的单元格上使用单元格的Characters 集合,并且公式本身无法控制格式。

标签: excel vba excel-formula


【解决方案1】:

使用公式是不可能的,但使用 vba 是不可能的。

Sub test()
    Dim rng As Range
    Dim s As String
    Dim s1 As String, s2 As String, s3 As String
    Dim k1 As Integer, k2 As Integer, k3 As Integer
    Set rng = ActiveCell

    s1 = Range("AH343")
    s2 = Range("AI343")
    s3 = Range("Aj343")

    s = "Charging Staff: " & s1 & "    " & " Charging Staff: " & s2 & "    " & " CAP_ID: " & s3

    k1 = InStr(s, s1)
    k2 = InStr(s, s2)
    k3 = InStr(s, s3)
    rng = s
    With rng
        .Font.Bold = False
        .Characters(k1, Len(s1)).Font.Bold = True
        .Characters(k2, Len(s2)).Font.Bold = True
        .Characters(k3, Len(s3)).Font.Bold = True
    End With
End Sub

这与使用 for 语句的代码相同。

Sub test2()
    Dim rng As Range
    Dim s As String
    Dim vS As Variant, vK()
    Dim i As Integer
    Set rng = ActiveCell

    vS = Range("Ah343").Resize(1, 3)

    s = "Charging Staff: " & vS(1, 1) & "    " & " Charging Staff: " & vS(1, 2) & "    " & " CAP_ID: " & vS(1, 3)

    For i = 1 To UBound(vS, 2)
        ReDim Preserve vK(1 To i)
        vK(i) = InStr(s, vS(1, i))
    Next i
    rng = s
    With rng
        .Font.Bold = False
        For i = 1 To 3
            .Characters(vK(i), Len(vS(1, i))).Font.Bold = True
        Next i
    End With
End Sub

【讨论】:

  • @BigBen,谢谢。
  • How do I answer the solution 回答了我的问题。我还没有测试过,但这似乎完美地解决了我的问题。
  • 只是想再次感谢这个解决方案就像一个魅力。感谢您的帮助。
  • @Aaron,如果可行,您会接受您的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 2020-04-27
  • 2016-06-07
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多