用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循环。