0

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

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

在此处输入图像描述

4

2 回答 2

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

我希望这会有所帮助。

于 2013-06-11T09:41:15.640 回答
0

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

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

在此处输入图像描述

于 2013-06-11T09:56:54.540 回答