excel - VBA 使用不等式替换

标签 excel vba performance loops replace

我的客户需要进行频繁的数据处理,必须使用 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

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

enter image description here

enter image description here

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

相关文章:

excel - 如果两列比较为真,则在接下来的两列中比较它们对应的值,并报告真/假

vba - 如何通过 MS 项目中的循环迭代所有行和列

Javascript:以有状态的方式有效地替换具有指定值属性的数组中的对象?

excel - 如何在Excel VBA中进行多重转置

Excel 匹配两列并输出第三列

excel - 使用数组循环将格式应用于范围 - VBA

html - 如何使用 VBA 单击网站上的组合框

sql - 从没有列名的查询中选择数据

Javascript:对于循环非常慢,有什么办法可以加快它的速度吗?

c++ - STL 中的随机元素在 log n 中设置/映射