我在同一个工作簿中有两个Excel工作表。一个包括卡片的交易信息,比如Sheet1
Transaction Date Card Number Amount (To be fill) Owner Information
11/01/2017 5678 $39.99 -
11/02/2017 1234 $39.99 -另一种包括卡片的信息,比如Sheet2
Create Date Card Number Owner Information
10/01/2017 5678 xxxx@gmail.com
10/01/2017 1234 xxxx@gmail.com
10/01/2017 2345 xxxx@gmail.com我需要一种快速/批处理的方式将所有者信息从sheet2复制到sheet1中的匹配行。
现在,我在Sheet2中手动搜索卡号,并将粘贴复制到Sheet1。但是我怎么能自动或批量搜索和实现这一点呢?
(PS. )我确实有Excel背景,但ADO不以列作为参数),我在MAC中使用Excel 2011。
发布于 2017-11-02 05:52:38
使用集合在多个列表之间引用唯一值。
注意:一般情况下,您将看到用于此任务的Scripting.Dictionary,但我不认为它在Mac上可用。所以我用了一个标准的VBA集合。
Sub Batch_Owner_Information()
Application.ScreenUpdating = False
Dim c As New Collection
Dim cell As Range, rInfo As Range
With ThisWorkbook.Worksheets("Sheet2")
For Each cell In .Range("B2", .Range("B" & .Columns.Count).End(xlUp))
On Error Resume Next
c.Add cell, cell.Text
On Error GoTo 0
Next
End With
With ThisWorkbook.Worksheets("Sheet1")
For Each cell In .Range("B2", .Range("B" & .Columns.Count).End(xlUp))
On Error Resume Next
Set rInfo = c(cell.Text)
If Err.Number = 0 Then
cell.Offset(0, 2).Value = rInfo.Offset(0, 1).Value
End If
On Error GoTo 0
Next
End With
Application.ScreenUpdating = True
End Subhttps://stackoverflow.com/questions/47067975
复制相似问题