【发布时间】:2018-01-07 07:19:40
【问题描述】:
我有两张纸,第一张为“BW”,第二张为“EP”。
我将 sheet1(L 列)中的 ID 与 sheet2 中的 ID 进行比较。如果 ID 匹配,那么我将表 2 的 G 列的日期复制到 AA 列中的表 1。
我有代码,一直在工作。
我想在这里有一个 IF 语句。
如果 sheet2 的 E 列已确认 G70,则查找 ID 并将 sheet2 的日期复制到 sheet1。
我尝试了以下 IF 语句并得到了
如果 Cells(i, 5).Value = "G70 Confirmed" Then
应用程序定义错误。
谁能帮我摆脱这个并满足要求
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
【问题讨论】:
-
您应该学习如何使用 F8 单步执行您的代码 - 然后您会看到您没有将 i 的值设置为为零。
-
然后我会设置一个 for 循环 I = 5 to totalrows ?
-
如果这就是您想要做的,是的,那会奏效。您还应该在处理多个工作表时添加对 If 行的工作表引用。