【发布时间】:2020-06-20 00:02:47
【问题描述】:
Sub ActivityMatching()
Worksheets("AuroraData").Activate
Set lookRange = Sheets("AuroraData").Range("A2:D1000")
Worksheets("PO List").Activate
ActiveSheet.Range("CD1").AutoFilter Field:=82, Criteria1:="Yes" //set the filter to "Yes" in Col CD
LastRow = Sheets("PO List").Cells(Rows.Count, "AK").End(xlUp).Row
With Application
For i = 3 To LastRow
Worksheets("PO List").Cells(i, 52) = .VLookup((Worksheets("PO List").Cells(i, 37).Value & Worksheets("PO List").Cells(1, 52).Value), lookRange, 4, False)
Next i
End With
Worksheets("PO List").Activate
End Sub
我正在尝试使用 VBA 代码在两张纸上执行 VLOOKUP。如果我运行上面的代码,这是我得到的结果(在 AZ 列中)。
VLOOKUP 部分有效。问题是我只想在列 CD 中具有“是”值的行上运行 VBA 代码。如果一行在 CD 列中有“否”,我希望 VBA 代码跳过它并且不做任何事情(这些行应该是手动填充的,所以我不希望我的 VBA 代码删除现有数据在这些行中)。
我不知道该怎么做……下面是我尝试使用 xlCellTypeVisible 的方法,但它不起作用。我仍然在这些“否”行中得到 #N/A 值。
With Application
For Each rw In filter_rng.SpecialCells(xlCellTypeVisible)
For i = 3 To LastRow
Worksheets("PO List").Cells(i, 52) = .VLookup((Worksheets("PO List").Cells(i, 37).Value & Worksheets("PO List").Cells(1, 52).Value), lookRange, 4, False)
Next i
Next rw
我应该如何编辑我的代码,以便它可以跳过这些列 CD 中带有“否”的行?提前致谢!
【问题讨论】: