【问题标题】:Automatically coloring partial text within cell in Excel在 Excel 中自动为单元格内的部分文本着色
【发布时间】:2018-02-27 14:11:50
【问题描述】:

我正在尝试找到一种方法,假设在特定工作表中特定单元格范围的一个单元格中输入文本“3b”(假设单元格范围:J19:O500 和工作表名称:WWP),操作这将自动将该单元格的背景更改为蓝色,并将字母“b”也更改为蓝色(请注意,只有“b”字母会更改为蓝色,目标是让字母“b”在技术上“隐藏”在背景颜色,并且仅在视觉上将“3”文本保留为黑色)。文本中的数字是可变的(1、2、3、4、10、20,最多 99),但字母只有四个(b=蓝色,r=红色,g=绿色,y=黄色) .目前,我们的团队每周在我们使用的标准文件中手动为数百个单元格着色,因此如果我们可以通过允许我们的团队输入他们想要的单元格的“数字”加上“字母”,它将自动格式化单元格(b、r、g、y)。我知道宏是一种选择,但我对此没有太多经验。非常感谢您的建议。

【问题讨论】:

  • 堆栈溢出不是我网站的代码。请说明您尝试过的方法以及出错的地方。

标签: excel colors format vba


【解决方案1】:

试试这个。

Sub setRangeColor()
    Dim rngDB As Range, rng As Range

Application.ScreenUpdating = False
    Set rngDB = Range("J19:o500")

    With rngDB '<~~ Initialize a range
        .Font.Color = vbBlack
        .Interior.Color = xlNone
    End With
    For Each rng In rngDB
        Select Case Right(rng, 1)
        Case "b"
            setTextColor rng, vbBlue
        Case "r"
            setTextColor rng, vbRed
        Case "g"
            setTextColor rng, vbGreen
        Case "y"
            setTextColor rng, vbYellow
        End Select
    Next rng
Application.ScreenUpdating = True
End Sub

Sub setTextColor(rng As Range, myColor As Long)
    Dim n As Integer
    n = Len(rng)
    rng.Characters(n, 1).Font.Color = myColor
    rng.Interior.Color = myColor
End Sub

【讨论】:

    【解决方案2】:

    如果我正确理解您的问题,您基本上希望选定范围内的单元格仅显示一个数字变量,然后使用指定的字母变量为该单元格着色。如果您想在不使用 VBA 的情况下执行此操作,那么您可以试试这个这将需要一个额外的电子表格来处理部分字体格式

    可以这样做:

    1. 在您的工作簿中创建一个新工作表。
    2. 在您的实际工作表以这种颜色格式开头的同一单元格中键入以下公式。例如)范围在 Sheet2 A1:B3 中,将此公式放入 Sheet3 A1:B10

    公式--> =IFERROR(MID(Sheet2!A1,1,LEN(Sheet2!A1)-1),"") *这将只返回另一个电子表格的单元格中的数字,假设在 r,g,b,y 之后没有其他字符继续

    确保将此公式复制到要格式化的整个单元格范围

    1. 在工作表 3 中选择要使用的范围(工作表 2 中的范围相同)
    2. 转到条件格式
    3. 选择新规则 6.输入这个公式

      =RIGHT(Sheet2!A1:B3,1)="R"

    (A1:B3 恰好是我的示例范围。R 代表红色

    1. 选择红色格式
    2. 重复步骤 3 到 7,直到满足每种颜色格式。 (只需将第 6 步公式中的“R”更改为 G、B 或 Y 并分别更改格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-30
      • 2011-08-19
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多