vba - 优化查找超过 200,000 个数据集的重复值
问题描述
我是编码新手,需要关于无法完成的代码的帮助。我怀疑这是由于数据集的大小。我使用简化的数据集测试了代码,它处理得很好。但是,我的实际数据集超过 210,000 行,并且预计会增长。
有没有办法加快这个速度?谢谢您的帮助
Sub DupValidation()
Dim wb As Workbook
Dim ws1 As Worksheet
Dim i As Long
Dim lastrow As Long
Dim lastrow2 As Long
Set wb = ActiveWorkbook
Set ws1 = wb.Worksheets("Tickets")
lastrow = ws1.Cells(Rows.Count, 1).End(xlUp).Row
ws1.Range("g2:g" & lastrow).ClearContents
i = 2
Do While i <= lastrow
If Application.CountIf(ws1.Range(ws1.Cells(2, 2), ws1.Cells(lastrow, 2)), ws1.Cells(i, 2)) > 1 Then
ws1.Cells(i, 7).Value = True
End If
i = i + 1
Loop
End Sub
解决方案
可能更好
Sub Check_Duplicates_Using_Evaluate()
With Range("B2", Range("B" & Rows.Count).End(xlUp))
.Offset(, 5).Value = .Parent.Evaluate("IF(COUNTIF(" & .Address & "," & .Address & ")>1,""True"","""")")
End With
End Sub
推荐阅读
- sql - SQL GROUP BY 其中任一列具有相同的值
- scala - 卡夫卡如何获得最后提交的偏移量
- printing - 在 Windows 7 上通过 Electron 应用程序将打印作业发送到打印机时出现假脱机问题
- c - 为正整数找到 2 的素数分解的最有效方法
- python - solve_bvp 没有给出正确的解决方案
- c - 如何创建用于 EGL 的原生 X11 窗口
- sql - 用最新数据中的值填充空值 - SQL
- python - ModuleNotFoundError:部署到heroku时没有名为'useracc'的模块
- c++ - C++ 键盘钩子 - 参数 nCode 是什么意思?
- c# - MimeKit 提取签名附件