excel - VBA Excel 可以更快地隐藏超过 300,000 行
问题描述
我在excel中有超过300.000行然后我想做这份工作
- 比较列 C & D 和 E 中显示的结果
- 隐藏所有具有 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
解决方案
你可以这样做:
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
那应该更快。在此之前不要关闭计算!
推荐阅读
- c - 对我的简单二十一点计划的建议/改进
- javascript - 访问 dispatch 函数作为组件中的 prop
- c - 程序返回一些奇怪且不完整的字符串
- android - 在 Kotlin 中为 recyclerView 的孩子的孩子设置监听器
- javascript - 如何在 Fullcalendar v4 中的特定日期呈现文本?
- python - 如何正确初始化神经网络模型中所需的向量?
- android - 如何在不使用 JSON 和 GSON 的情况下将 HashMap 保存在 Room 数据库中?
- php - 无法使用 php 连接到我的 sql,未定义函数 mysql_connect()
- android - Android Q 中的 Landroid/view/LayoutInflater 类中没有字段 mConstructorArgs
- reactjs - 将父值作为变量反应给子组件