目标:
如果在单元格中找到单词“Total”,则以单词“Total”为起点的当前行(列中带有字母D)一直到字母H应具有浅灰色背景色。如果没有“总计”,则背景应为默认值。
问题:
我应该如何使用 VBA 来做到这一点?
目标:
如果在单元格中找到单词“Total”,则以单词“Total”为起点的当前行(列中带有字母D)一直到字母H应具有浅灰色背景色。如果没有“总计”,则背景应为默认值。
问题:
我应该如何使用 VBA 来做到这一点?
您可以尝试使用条件格式。只需选择单元格并转到“格式”->“条件格式”(这是 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
我希望这会有所帮助。
有关条件格式背景,请参阅Debra 的网站。仅使用纯条件格式突出显示活动行的实际方法实际上非常困难 - 我在那里得到了 99.9% 但我仍然需要一个该死的计算事件来刷新公式以使这项工作
FWIW,如果您申请:
D:H
范围=AND(NOT(ISERROR(SEARCH("Total",$D7))),ROW(INDIRECT(CELL("address")))=ROW(INDIRECT(ADDRESS(ROW()+RAND()*0,COLUMN()))))
Calcuate
事件第2步
View - Code
代码
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub