给我上面问题的1VBA代码
时间: 2024-03-01 07:53:47 浏览: 87
以下是一个用VBA实现对比两个列并将相同元素的两个单元格其中一个后面的数据粘贴给另一个单元格后面的代码:
```
Sub mergeData()
Dim rng1 As Range, rng2 As Range, cell1 As Range, cell2 As Range
Dim val1 As Variant, val2 As Variant
Dim lastRow As Long
'获取第一个列的范围
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set rng1 = Range("A1:A" & lastRow)
'获取第二个列的范围
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Set rng2 = Range("B1:B" & lastRow)
'循环遍历第一个列的每个单元格
For Each cell1 In rng1
val1 = cell1.Value
'在第二个列中查找相同的值
For Each cell2 In rng2
val2 = cell2.Value
'如果找到相同的值,则将相应的数据粘贴到第一个列的单元格后面
If val1 = val2 Then
cell1.Offset(0, 1).Value = cell2.Offset(0, 1).Value
Exit For
End If
Next cell2
Next cell1
End Sub
```
这段代码会遍历第一个列的每个单元格,并在第二个列中查找相同的值,如果找到相同的值,则将相应的数据粘贴到第一个列的单元格后面。需要注意的是,这段代码假设第一个列是A列,第二个列是B列,如果需要修改列的范围,请修改相应的代码。
阅读全文