excel中请用VBA提出两列数据中相同的数来。
答案:4 悬赏:80 手机版
解决时间 2021-04-20 10:31
- 提问者网友:沦陷
- 2021-04-19 14:38
excel中请用VBA提出两列数据中相同的数来。
最佳答案
- 五星知识达人网友:执傲
- 2021-04-19 15:19
亲,打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧对应的Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。
Sub cz()
Dim f As Range: Dim i, n As Integer
n = 3357: Columns("D").NumberFormat = "@"
For i = 3357 To 3343 Step -1
Set f = Range("B3343:B3357").Find(Range("A" & i).Value)
If Not f Is Nothing Then Range("C" & n).Value = i: Range("D" & n).Value = Range("A" & i).Value: n = n - 1
Next
End Sub
Sub cz()
Dim f As Range: Dim i, n As Integer
n = 3357: Columns("D").NumberFormat = "@"
For i = 3357 To 3343 Step -1
Set f = Range("B3343:B3357").Find(Range("A" & i).Value)
If Not f Is Nothing Then Range("C" & n).Value = i: Range("D" & n).Value = Range("A" & i).Value: n = n - 1
Next
End Sub
全部回答
- 1楼网友:迷人又混蛋
- 2021-04-19 19:23
A列本身有没有重复,B列本身有没有重复?
- 2楼网友:梦中风几里
- 2021-04-19 17:53
利用字典,将B列插入字典的key值,然后循环A列,判断字典的key是否存在,再将存在的行写入后面的列。前提是如果B列不重复的话!Sub 查找()
Set d = CreateObject("Scripting.Dictionary")
h = [b65536].End(3).Row
arr = Range("b1:b" & h)
For i = 1 To UBound(arr, 1)
d.Add val(arr(i, 1)), ""
Next i
For i = h To 1 step -1
If d.exists(val(Cells(i, 1))) Then
Cells(h, 3) = i
Cells(h, 4) = Cells(i, 1)
h = h - 1
End If
Next
End Sub
- 3楼网友:等灯
- 2021-04-19 16:19
弄错了 一个问题 现改正
Sub jk()
Dim i, j, k
i = [a65536].End(3).Row
Cells(i, 3).Select
For j = i To 1 Step -1
For k = i To 1 Step -1
If Cells(j, 1) = Cells(k, 2) Then
Selection = j
Selection.Offset(0, 1) = Cells(j, 1)
Selection.Offset(-1, 0).Select
End If
Next
Next
End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯