用if语句使用vlookup
我有两张纸,第1张为“BW”,第2张为“EP”。
我将我的sheet1(列L)中的ID与我的sheet2中的ID进行比较。 如果ID匹配,那么我将表2中G列的date复制到AA列中的sheet1中。
我有代码,一直工作到这。
我想在这里有一个IF声明。
如果我的工作表2的E栏已经确认G70,那么我查找ID并将工作表2的date复制到工作表1。
我尝试了下面的IF语句,并得到了
如果Cells(i,5).Value =“G70 Confirmed”那么
应用程序定义错误
任何人都可以帮助我摆脱这一点,并满足要求
Sub lookup() Dim TotalRows As Long, totalrowsSht2 As Long Dim ws As Worksheet TotalRows = Sheets("BW").Cells(Rows.Count, "A").End(xlUp).Row totalrowsSht2 = Sheets("BW").Cells(Rows.Count, "A").End(xlUp).Row If Cells(i, 5).Value = "G70 Confirmed" Then Sheets("BW_PSW").Range("AA5:AA" & TotalRows).Formula = Application.WorksheetFunction.IfError(Application.VLookup(Sheets("BW").Range("L5:L" & totalrowsSht2), Sheets("eP").Range("$A:$L"), 7, 0), "") End If End Sub
我看到你在你的代码中有以下内容:
TotalRows = Sheets("BW").Cells(Rows.Count, "A").End(xlUp).Row totalrowsSht2 = Sheets("BW").Cells(Rows.Count, "A").End(xlUp).Row
不应该2行的总行是“ EP ”而不是“ BW ”?
totalrowsSht2 = Sheets("EP").Cells(Rows.Count, "A").End(xlUp).Row
我可能会使用“查找”,而不是vlookup,并通过两张表循环,但这只是我的偏好。
你的代码令人困惑:
您需要澄清哪些工作表“EP”,“BW”和“BW_PSW”是。
这是你想要完成的…
对于从第五行到最后一行的每一行。
如果工作表2的“E”列的值为“G70 Confirmed”,并且工作表1的列“L”中的值等于工作表2列(无论“ID”列中的值)的值如何。
然后
将工作表2列“G”中的date复制到工作表1列“AA”
如果这是正确的,你需要一个带有If / And语句的For循环。