【问题标题】:Formatting only lower case letters仅格式化小写字母
【发布时间】:2018-09-18 21:47:56
【问题描述】:

我正在尝试格式化单元格,其中只有小写字母为红色,所有其他大写字母和所有数字均为黑色。

单元格是公式的结果,引用另一个页面。它所引用的单元格由该页面中的其他公式组成。

如何让我的字体格式与公式一起使用(在这种情况下,将小写字母涂成红色很容易,因为我已经将它们提取到自己的单元格中)或者你有条件的建议吗?格式或代码仅将小写字母变为红色?

【问题讨论】:

  • 你试过什么?您需要遍历每个单元格中的每个字符并检查大小写,然后从那里应用格式。
  • 不能用公式对文本进行部分着色。您可以使用条件格式进行全有或全无方法。
  • 虽然可以使用 VBA,但不要误会
  • 使用VBA,将公式改为文本字符串;然后使用Range 对象的.Characters 属性来测试每个字符,并根据您的测试进行格式化。

标签: excel vba excel-formula


【解决方案1】:

"... OR do you have suggestion for ... code to made only lower case letters red"

是的,就是这样,但效率并不高

Option Explicit

Sub LowercaseToRed()

    SpeedUp True
    On Error GoTo ErrClose

    Dim cell As Range
    For Each cell In Range("A1:D10")

        Dim i As Long
        For i = 1 To cell.Characters.count
            If 97 <= Asc(Mid(cell.Value2, i, 1)) And Asc(Mid(cell.Value2, i, 1)) <= 122 Then
                cell.Characters(i, 1).Font.color = vbRed
            End If
        Next i

    Next cell

ErrClose:
    SpeedUp False

End Sub

Sub SpeedUp(ByVal toggleOn As Boolean)

    With Application
        .Calculation = IIf(toggleOn, xlCalculationManual, xlCalculationAutomatic)
        .ScreenUpdating = Not toggleOn
        .DisplayStatusBar = Not toggleOn
        .EnableEvents = Not toggleOn
    End With

End Sub

【讨论】:

    猜你喜欢
    • 2017-04-10
    • 2015-07-18
    • 1970-01-01
    • 2015-10-16
    • 2018-03-06
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多