首页 > 解决方案 > VBA Excel 可以更快地隐藏超过 300,000 行

问题描述

我在excel中有超过300.000行然后我想做这份工作

  1. 比较列 C & D 和 E 中显示的结果
  2. 隐藏所有具有 TRUE 值的行,仅显示 FALSE

在此处输入图像描述

我正在尝试使用此代码,但隐藏行需要超过 15 分钟

Dim LastRow As Long
Dim i, Hide, popup  As Long 
LastRow = Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To LastRow
  If Range("C" & i).Value = Range("D" & i).Value Then
      Range("E" & i).Value = "True"
  Else
  Range("E" & i).Value = "False"


  End If
 If Cells(x, "E").Value = "True" Then
 Rows(x).Hidden = True

End If

Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Next i

标签: excelvba

解决方案


你可以这样做:

Dim LastRow As Long
Dim sht As Worksheet
Set sht = ActiveSheet

LastRow = sht.Range("B" & Rows.Count).End(xlUp).Row

With sht.Range("E2:E" & LastRow)
    .Formula = "=C2=D2"
    .Value = .Value
    .Offset(-1, 0).Resize(.Rows.Count + 1).AutoFilter Field:=1, Criteria1:="FALSE"
End With

那应该更快。在此之前不要关闭计算!


推荐阅读