【问题标题】:is there a faster way to loop with ColorCounter in excel vba?有没有更快的方法在 excel vba 中循环使用 ColorCounter?
【发布时间】:2020-02-22 05:09:22
【问题描述】:

我有一个可以工作的 lColorCounter 代码,但速度很慢。有没有更快的方法来循环使用 lColorCounter?

  Dim rng As Range
Dim lColorCounter As Long
Dim rngCell As Range
Set rng = Sheets("MASTER LINE LIST").Range("C2:Z2000")
lColorCounter = 0
    For Each rngCell In rng
    'Checking BLUE color
        If Cells(rngCell.Row, rngCell.Column).DisplayFormat.Interior.Color = RGB(0, 176, 240) Then
            lColorCounter = lColorCounter + 1
        End If
    Next
Sheets("Status").Range("C5") = lColorCounter
lColorCounter = 0
    For Each rngCell In rng
    'Checking Yellor color
        If Cells(rngCell.Row, rngCell.Column).DisplayFormat.Interior.Color = RGB(255, 255, 0) Then
            lColorCounter = lColorCounter + 1
        End If
    Next
Sheets("Status").Range("B5") = lColorCounter

【问题讨论】:

    标签: excel vba performance loops counter


    【解决方案1】:

    循环一次:

    Dim rng As Range
    Dim bColorCounter As Long
    Dim yColorCounter As Long
    Dim rngCell As Range
    Set rng = Worksheets("MASTER LINE LIST").Range("C2:Z2000")
    bColorCounter = 0
    yColorCounter = 0
        For Each rngCell In rng
        'Checking BLUE color
            If rngCell.DisplayFormat.Interior.Color = RGB(0, 176, 240) Then
                bColorCounter = bColorCounter + 1
            ElseIf rngCell.DisplayFormat.Interior.Color = RGB(255, 255, 0) Then
                yColorCounter = yColorCounter + 1
            End If
        Next
    Sheets("Status").Range("C5") = bColorCounter
    Sheets("Status").Range("B5") = yColorCounter
    

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2020-06-25
    • 2022-08-05
    • 2017-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 2022-01-07
    相关资源
    最近更新 更多