另一個值I有2個工作簿甲& B.VBA匹配值,則返回從工作簿乙
工作簿A是客戶發票(5000行)的列表。客戶ID在A列。 工作簿B是客戶詳細信息,包含15000行和100列。客戶ID在B列。
使用客戶ID,我試圖複製D,E,G,O,AA,AD,AF,BD,CA(客戶的地址,電話,電子郵件)工作簿B到工作簿列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
我一直在尋找的網站上,有一天,我似乎無法得到我想要的東西。我會很高興,如果有人能指向我正確的方向
請幫助。謝謝
請編輯您的問題,以顯示你嘗試過的代碼。 – YowE3K
嗨YowE3K。感謝您的提醒。我已經添加了代碼。我很抱歉,我對vba和這個網站仍然很陌生 – ChartzAttack