|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
需要列示A列与B列的不同姓名放置C列,但是当A列与B列完全一致时,报错“1004”,请教如何处理?
姓名 | 姓名 | 姓名 | 张三 | 张三 |
| 李四 | 李四 |
| 王五 | 王五 |
| 王麻子 | 王麻子 |
| 代码如下:
Option Explicit
Sub test()
Dim d As Object
Dim arr, brr, crr()
Dim dKeys, dItems
Dim i&, k&
Set d = CreateObject("scripting.dictionary")
With Sheet1
arr = .Range("a1:a" & .Cells(Rows.Count, 1).End(3).Row)
brr = .Range("b1:b" & .Cells(Rows.Count, 2).End(3).Row)
End With
cf d, arr
cf d, brr
dKeys = d.keys
dItems = d.items
ReDim crr(1 To d.Count, 1 To 1)
For i = 1 To d.Count
If dItems(i - 1) = 1 Then
k = k + 1
crr(k, 1) = dKeys(i - 1)
End If
Next
Sheet1.Range("c2: c1048576").ClearContents
Sheet1.Range("c2").Resize(k) = crr '如果两列数据相同,则报错
End Sub
Sub cf(dic As Object, ByVal ar)
Dim i&
For i = 1 To UBound(ar)
If dic.exists(ar(i, 1)) Then
dic(ar(i, 1)) = 2
Else
dic(ar(i, 1)) = 1
End If
Next
End Sub
|
|