請幫助一個新手,我就是不能解決這個問題,我感到很困惑。
我有一個有兩個作業表的作業簿。
兩個作業表中的A列是一個零件編號代碼。
兩個作業表中的B列是A列中零件編號的折扣代碼。
兩個作業表中的C列是零件號替代(新的零件號)列,然而并不是所有的行在C列都有新的零件號,C列的一些單元格是空的。
新零件號C列沒有任何折扣代碼被填充到D列中。
我的目標是在兩個作業表中的D列中填入從B列中找到的相關折扣代碼,但僅針對C列中實際填入零件編號的每個單元格,在作業表1和作業表2中尋找。
到目前為止,我在以下方面取得了很小的成功,但我只是在表面上做文章,我相信一些VBA將是一個更好的解決方案,但我正在變得非常迷茫。
=XLOOKUP(D2,Sheet1!A:A & Sheet2!A:A,B:B,0, 1)
這段代碼不是一個完整的公式,只是很部分的作業。
請幫助。
請幫助。謝謝你。
uj5u.com熱心網友回復:
使用字典物件作為查詢表
。Option Explicit>
Sub macro1()
Dim ws As 作業表
Dim Lastrow As Long, i As Integer, r As Long
Dim dict As Object, key, nAs Long
Set dict = CreateObject("Scripting.Dictionary"/span>)
' 從第1頁和第2頁建立查詢。
For i = 1 To 2
Set ws = Sheets(i)
lastrow = ws.Cells(Rows.Count, "A").End(xlUp) .Row
For r = 1 To lastrow
key = Trim(ws.Cells(r, "A"/span>)
如果 dict.existence(key) 然后
MsgBox "Duplicate Part No '" & key & "' ", vbCritical, "Row" & r
Exit Sub
Else[/span
dict.Add key, ws.Cells(r, "B"/span>)
結束 If
下一步 下一步
下一步 下一步
' 更新兩個作業表的D列
For i = 1 To 2
Set ws = Sheets(i)
lastrow = ws.Cells(Rows.Count, "C").End(xlUp) .Row
For r = 1 To lastrow
key = Trim(ws.Cells(r, "C"/span>)
If Len(key) > 0Then
If dict.existence(key) 然后
ws.Cells(r, "D"/span>) = dict(key)
n = n 1 1
結束 If
End If
下一步 下一步
下一步 下一步
MsgBox n & " rows updated"/span>, vbInformation
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/324160.html
標籤:
