【问题标题】:Show background color in Row在行中显示背景颜色
【发布时间】:2013-06-11 17:56:54
【问题描述】:

目标:
如果在单元格中找到单词“Total”,则以单词“Total”为起点的当前行(列中带有字母 D)一直到字母 H 应具有浅灰色背景色。如果没有“总计”,则背景应为默认值。

问题:
我应该如何使用 VBA 来做到这一点?

【问题讨论】:

  • 为什么不直接使用条件格式?

标签: vba excel excel-2010


【解决方案1】:

您可以尝试使用条件格式。 只需选择单元格并转到“格式”->“条件格式”(这是Excel 2003中的路径,不知道2007或更高版本)

但是,如果您愿意,可以使用宏来完成。 下面是一个例子:

Sub RowsToGrey()
Dim r As Long, i As Long
r = Cells(Rows.Count, 4).End(xlUp).Row
For i = 1 To r
    If InStr(Cells(i, 4), "Total") Then
        Range(Cells(i, 4), Cells(i, 8)).Interior.ColorIndex = 15
    Else
        Range(Cells(i, 4), Cells(i, 8)).Interior.ColorIndex = 0
    End If
Next i
End Sub

希望对你有帮助。

【讨论】:

    【解决方案2】:

    有关条件格式背景,请参阅Debra's site。仅使用纯条件格式突出显示活动行的实际方法实际上非常困难 - 我在那里得到了 99.9%,但我仍然需要一个 damn 计算事件来刷新公式以使其工作

    FWIW,如果您申请:

    1. 将此条件格式公式应用于您的列D:H 范围
      =AND(NOT(ISERROR(SEARCH("Total",$D7))),ROW(INDIRECT(CELL("address")))=ROW(INDIRECT(ADDRESS(ROW()+RAND()*0,COLUMN()))))
    2. 添加Calcuate事件

    第 2 步

    • 右键单击您的工作表标签
    • View - Code
    • 复制粘贴代码 下面

    代码

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Calculate
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 1970-01-01
      • 2010-12-19
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多