我有两张纸,第1张为" BW"和sheet2为" EP"。
我将sheet1(L列)中的ID与sheet2中的ID进行比较。如果ID匹配,那么我将工作表2的G列的日期复制到AA列中的sheet1。
我有代码,一直工作到此。
我想在这里有一个IF声明。
如果我的sheet2的E列已确认G70,那么我会查找该ID并将sheet2的日期复制到sheet1。
我尝试了以下IF语句并获得了
If Cells(i,5).Value =" G70确认"然后
应用程序定义错误。
任何人都可以帮我摆脱这个并满足要求
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
答案 0 :(得分:1)
我发现您的代码中包含以下内容:
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
我可能会使用" Find"而不是vlookup,并循环两张床单, 但那只是我的偏好。
答案 1 :(得分:0)
您的代码令人困惑:
您需要澄清哪些工作表“EP”,“BW”和“BW_PSW”。
这是你想要完成的......
对于从第五行到最后一行的每一行。
如果工作表2的值,“E”列是“G70已确认”,并且工作表1中的值,则列“L”等于工作表2列中的值(无论“ID”列是什么)。
然后
将日期从工作表2列“G”复制到工作表1列“AA”
如果这是正确的,你需要一个带有If / And语句的For循环。