首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从其他Excel表格中查询完整的卡片号

从其他Excel表格中查询完整的卡片号
EN

Stack Overflow用户
提问于 2017-11-02 05:07:46
回答 1查看 31关注 0票数 0

我在同一个工作簿中有两个Excel工作表。一个包括卡片的交易信息,比如Sheet1

代码语言:javascript
运行
复制
Transaction Date  Card Number   Amount  (To be fill) Owner Information
11/01/2017        5678        $39.99    -
11/02/2017        1234        $39.99    -

另一种包括卡片的信息,比如Sheet2

代码语言:javascript
运行
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-02 05:52:38

使用集合在多个列表之间引用唯一值。

注意:一般情况下,您将看到用于此任务的Scripting.Dictionary,但我不认为它在Mac上可用。所以我用了一个标准的VBA集合。

代码语言:javascript
运行
复制
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 Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47067975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档