【问题标题】:Use VBA to Update Conditional Formatting Ranges?使用 VBA 更新条件格式范围?
【发布时间】:2016-05-18 13:42:27
【问题描述】:

我正在尝试更新工作表上大约 30 行数据的条件格式范围。每个月我都会更新数据,我想运行一个宏来调整范围以包含新的月份。我已经通过循环通过 ChartObjects 和 SeriesCollection 更新系列范围的结尾来为我的图表完成此操作。

要在条件格式上执行此操作,我发现的所有内容都需要对范围进行硬编码(单元格引用或命名范围),例如:

With Worksheets(1).Range("e1:e10").FormatConditions(1) 

我宁愿只遍历工作表的条件格式集合,但我找不到 Excel VBA 对象模型中存在此集合的任何证据。我在这里遗漏了什么吗?

【问题讨论】:

标签: excel vba


【解决方案1】:

这有点令人费解,因为实际上没有任何好方法可以在工作表中循环遍历 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() 的想法。

【讨论】:

  • 我阅读了 Dick Kusleika 的帖子,内容非常好。这是困难的一个。不幸的是,我正在处理的条件格式是色标,他讨论的不适用于上面的代码,因为它是一个单独的对象(ColorScale vs. FormatConditions)。如果我能解决它,我可能会尝试将您的代码转换为使用 ColorScale。
【解决方案2】:

您可以使用如下代码: 这里根据条件以黄色突出显示该行。您可以使用您的格式

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    相关资源
    最近更新 更多