我在Excel中有超过300.000行,然后我想做这个工作
我试图使用此代码,但是要花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)
您可以执行以下操作:
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)
那应该更快。不过,在执行此操作之前请不要关闭计算!