我尝试更新工作表上大约30行数据的条件格式设置范围。每个月我都会更新数据,并且我想运行一个宏来调整范围以合并新月份。我已经通过循环使用ChartObjects和SeriesCollection来更新系列范围的结尾,从而为我的图表做了这个。
要在条件格式化上执行此操作,我发现的所有内容都需要对范围(单元格引用或命名范围)进行硬编码,例如:
With Worksheets(1).Range("e1:e10").FormatConditions(1)
我更喜欢循环浏览工作表的条件格式集合,但我无法在Excel VBA对象模型中找到此集合的任何证据。我在这里错过了什么吗?
答案 0 :(得分:0)
这有点令人费解,因为在表单中循环formatconditions
并没有什么好办法。但是,你可以循环遍历特殊单元,然后遍历它们的formatconditions
并从那里挖掘出来:
Sub test()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim rngCell As Range
Dim lng As Long
For Each rngCell In ws.Cells.SpecialCells(xlCellTypeAllFormatConditions).Cells
For lng = 1 To rngCell.FormatConditions.Count
On Error Resume Next
Debug.Print rngCell.FormatConditions(lng).Formula1, rngCell.FormatConditions(lng).AppliesTo.Address
Next lng
Next rngCell
End Sub
我在dailydoseofexcel.com博客上从Dick Kusleika's excellent post on this very subject挖走了specialcells()
想法。
答案 1 :(得分:0)
您可以使用以下代码:在此根据条件以黄色突出显示该行。您可以使用格式
LastColumnARows = WB_Source.Sheets(SheetName.Name).range("A" & Rows.Count).End(xlUp).Row
With WB_Source.Sheets(SheetName.Name)
For i = 2 To LastColumnARows
If .range("A" & i).Value > [Condition] Then
With .range("A" & i & ":E" & i)
.Interior.Color = vbYellow
.Font.Color = vbBlack
End With
End If
Next i
End With