我有2本工作簿A&乙
工作簿A是客户发票清单(5000行)。客户ID位于A列。 工作簿B是客户详细信息,包括15000行和100列。客户ID位于B列。
使用客户ID,我尝试将工作簿B中的D,E,G,O,AA,AD,AF,BD,CA(客户地址,电话,电子邮件)中的数据复制到工作簿A列F到N.
我一直在使用vlookup,但由于数据每天都刷新而且耗时太长,我需要一次又一次地重新输入公式。
我尝试使用VBA循环功能,但它超时(数据太大)。我试过各种各样的方法,比如匹配功能我似乎无法得到结果。
以下是我试过的代码。对不起,我是VBA的新手。我认为这种大数据不鼓励双循环。客户数据有100列和14000行,发票有3000行
Sub CustomerData()
Dim r As Long
Dim r1 As Long
Dim sheet1 As Worksheet
Dim sheet2 As Worksheet
Dim FilePath1 As String
FilePath1 = Range("Q1").Value
Workbooks.Open (FilePath1 & "invoice.xlsx")
Workbooks.Open (FilePath1 & "customer.xls")
Set sheet1 = Workbooks("customer.xls").Worksheets("Customers")
Set sheet2 = Workbooks("invoice.xlsx").Worksheets("unpaid_invoices")
r = 0
Do
r1 = 0
Do
If sheet2.Range("A1").Offset(r, 0) = sheet1.Range("B1").Offset(r1, 0) Then
sheet2.Range("A1").Offset(r, 13) = sheet1.Range("B1").Offset(r1, 8)
sheet2.Range("A1").Offset(r, 14) = sheet1.Range("B1").Offset(r1, 9)
sheet2.Range("A1").Offset(r, 15) = sheet1.Range("B1").Offset(r1, 38)
sheet2.Range("A1").Offset(r, 16) = sheet1.Range("B1").Offset(r1, 64)
sheet2.Range("A1").Offset(r, 17) = sheet1.Range("B1").Offset(r1, 25)
sheet2.Range("A1").Offset(r, 18) = sheet1.Range("B1").Offset(r1, 39)
sheet2.Range("A1").Offset(r, 19) = sheet1.Range("B1").Offset(r1, 41)
sheet2.Range("A1").Offset(r, 20) = sheet1.Range("B1").Offset(r1, 44)
sheet2.Range("A1").Offset(r, 21) = sheet1.Range("B1").Offset(r1, 78)
sheet2.Range("A1").Offset(r, 22) = sheet1.Range("B1").Offset(r1, 99)
sheet2.Range("A1").Offset(r, 23) = sheet1.Range("B1").Offset(r1, 100)
End If
r1 = r1 + 1
Loop Until sheet1.Range("B1").Offset(r1, 0).Value = ""
r = r + 1
Loop Until sheet2.Range("A1").Offset(r, 0).Value = ""
End Sub
我一直在网站上搜索一天,我似乎无法得到我想要的东西。如果有人能指出我正确的方向,我会很高兴
请帮忙。谢谢
答案 0 :(得分:0)
有了这么大的数据,我建议您查看PowerQuery,它包含在Excel 2016中,自Excel 2010以来可以作为AddIn使用。
First Table called "Invoices", Second called "Details"
将两个表添加到Power Query(Excel 2016:" Data" Ribbon - >" Get& Transform" Section - >" From Table&# 34;或"新查询" - >"来自工作簿")
And then in Power Query Editor use "Merge Queries":
选择要添加到表格中的列
然后点击"保存并加载到"并选择合并表的目标。
这是非常高效的,点击"全部刷新"将保持新表同步。
P.S。我会发布更多图片,但没有"声誉"
最佳
Florian