我有一个必须是 Excel VBA 的客户端的频繁数据处理。它是 6 个选项卡上的 3000x60 单元格网格,因此循环可能需要一段时间。测试任务是找到值 >5 并突出显示它们。

由于各种原因,条件格式不是一种选择。

for 循环很明显,我对此持开放态度,但我正在寻找速度改进。

更换似乎更快。我想尝试 Selection.Replace What:=">5"但这寻找字符串而不是我真正想要的不等式。

最佳答案

也许这是一个有趣的方法?

Sub Highlight()

Dim WS As Worksheet

For Each WS In ThisWorkbook.Worksheets
    For X = 1 To 60
        On Error Resume Next
        With Intersect(WS.UsedRange, WS.Columns(X))
            .AutoFilter 1, ">5"
            .Offset(1).Resize(.Rows.Count - 1).Interior.Color = vbYellow
            .AutoFilter
        End With
        On Error GoTo 0
    Next X
Next WS

End Sub

显然,还有很大的改进空间(例如屏幕更新和计算),但您应该明白这一点。我不知道它是否更快:)。至少你不会循环所有单元格。

excel - VBA 使用不等式替换-LMLPHP

excel - VBA 使用不等式替换-LMLPHP

关于excel - VBA 使用不等式替换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56772914/

10-12 06:36