VBA Excel可以更快地隐藏超过300,000行

kuc*_*luk 1 excel vba

我在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
Run Code Online (Sandbox Code Playgroud)

Tim*_*ams 5

您可以执行以下操作:

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
Run Code Online (Sandbox Code Playgroud)

那应该更快。不过,在执行此操作之前请不要关闭计算!