我需要在VBA中设置一个vlookup循环。 我已经让它为第一行工作,但我需要查找单元格是通用的。现在B3正在查找A3,但是当它循环时B4也在查找A3时我需要它来查找A4。
有没有人知道查找上一个选定单元格而不是设定范围的方法?
到目前为止,这是我的代码:
Range("A3").Select
Do Until ActiveCell.Value = " "
ActiveCell.Offset(0, 1).Select
ActiveCell = Application.WorksheetFunction.VLookup(Sheets("test").Range("A3"), Sheets("HD Extract").Range("Extract"), 4, False)
ActiveCell.Offset(0, 1).Select
ActiveCell = Application.WorksheetFunction.VLookup(Sheets("test").Range("B3"), Sheets("HD Extract").Range("Wordings"), 2, False)
ActiveCell.Offset(0, 1).Select
ActiveCell = Application.WorksheetFunction.VLookup(Sheets("test").Range("C3"), Sheets("HD Extract").Range("PriorityRank"), 3, False)
ActiveCell.Offset(0, 1).Select
ActiveCell = Application.WorksheetFunction.VLookup(Sheets("test").Range("C3"), Sheets("HD Extract").Range("Wordings"), 5, False)
ActiveCell.Offset(1, -4).Select
Loop
答案 0 :(得分:0)
尝试下面的代码 - 这是一个非常通用的代码。它将需要修改(您的vlookup列必须与您的vlookup范围一起调整),但一般原则成立。
lastrow = Cells(Activesheet.Rows.Count,1).End(xlUp).Row
For r = 3 to lastrow
For c = 2 to 5
Cells(r,c).Value = Application.WorksheetFunction.Vlookup(Sheets("test").Range(Cells(r,c-1), Sheets("HD Extract").Range("Extract"), 4,False)
If Cells(r,c).Value = " " Then GoTo nextstep
Next r
Next c
Nextstep: