在行中显示背景颜色

时间:2013-06-11 09:24:55

标签: vba excel-vba excel-2010 excel

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

问题:
我应该如何使用VBA?

enter image description here

2 个答案:

答案 0 :(得分: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

我希望有所帮助。

答案 1 :(得分:0)

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

FWIW,如果您申请:

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

    第2步

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

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

    enter image description here