1

我需要对公式结果为 10 或更多的特定范围内的所有单元格应用粗体。我已经尝试了以下代码,但它似乎随机应用粗体!

Sub BoldHighHours()

Application.ScreenUpdating = False
Dim c As Object

For Each c In Range("I7:AM1005")
   If c.Value >= 10 Then
       c.Offset(0, 1).Font.Bold = True
       c.Offset(0, 2).Font.Bold = True
   Else
       c.Offset(0, 1).Font.Bold = False
       c.Offset(0, 2).Font.Bold = False
   End If
Next
Application.ScreenUpdating = True
End Sub

如果您一直关注我以前的问题/传奇,您就会明白为什么我不能使用条件格式!自动过滤器对大量的条件格式不友好,并且大大降低了速度!

4

1 回答 1

1

您需要删除Offset()

Sub BoldHighHours()

    Application.ScreenUpdating = False 
    Dim c As Range 

    For Each c In Range("I7:AM1005") 

        If c.Value >= 10 Then 
            c.Font.Bold = True
        Else 
            c.Font.Bold = False 
        End If 

    Next 
    Application.ScreenUpdating = True 

End Sub

我的优化:

Sub BoldHighHours()

    Application.ScreenUpdating = False 
    Dim c As Long

    For Each c = 9 to 39 ' hopefully i to am..

        ActiveSheet.AutoFilterMode = False

        With Range("A8:A1005").Offset(0, c - 1)

            .Font.Bold = False
            .AutoFilter Field:=1, Criteria1:=">=10"
            .Font.Bold = True
        End With 

    Next 

    ActiveSheet.AutoFilterMode = False
    Application.ScreenUpdating = True 

End Sub
于 2013-04-05T10:30:09.553 回答