EXCEL VBA中的小问题,急
Sub 按钮1_单击()
Dim objDict As Object
Dim objShtNew As Worksheet
Dim objShtOld As Worksheet
Dim i&, k&, strTemp$
Set objDict = New Dictionary
' 假设你的‘最新’的名单表是 Sheet1,旧名单表是 Sheet1
' 具体情况,你自己处理
Set objShtNew = Sheets("Sheet1")
Set objShtOld = Sheets("Sheet2")
' 假设你的‘姓名’是A列,手机号是B列
' 第一行是表头,姓名从第二行开始记录的
k = WorksheetFunction.CountA(objShtOld.Range("A:A"))
For i = 2 To k
objDict.Add objShtOld.Cells(i, 1).Text, vbNullString
Next
k = WorksheetFunction.CountA(objShtNew.Range("A:A"))
For i = 2 To k
strTemp = objShtNew.Cells(i, 1).Text
If Not objDict.Exists(strTemp) Then
' 输出‘新姓名’的行号、姓名、手机号
Debug.Print i, strTemp, objShtNew.Cells(i, 2).Text, Cells(i, 3).Text, Cells(i, 4).Text, Cells(i, 5).Text
End If
Next
objDict.RemoveAll
Set objDict = Nothing
Set objShtNew = Nothing
Set objShtOld = Nothing
End Sub
大量数据的时候, 出现运行错误'457' 提示我 该关键字已经与该集合的一个元素相关联
10几条数据的时候是可用的,几w条就不行了
求大神啊
[解决办法]
问题应该是出在这句上:
objDict.Add objShtOld.Cells(i, 1).Text, vbNullString
这个,你关键要确认是否有重名的。
10几W,很有可能的……