我是VBA的新手,我正在尝试将我编写的vlookup公式转换为将循环遍历列中每个单元格的VBA代码。 vlookup是if语句的一部分,它可以自行运行。我面临的问题是我不知道如何告诉vlookup函数要查找数据的单元格,以便它可以推广到整个循环。公式如下
= IF(!K114<> “中”,K114,VLOOKUP($ A114,排版$ A $ 1:$ d $ 136,2,FALSE))
这是我对VBA的看法
Sub Ranking()
Dim cell As Range, rng As Range
Set rng = Range("K2:K120")
For Each cell In rng
If cell.Value <> "" Then
cell.Offset(0, 1).Value = cell.Value
Else: cell.Offset(0, 1).Value = WorksheetFunction.VLookup(HELP HERE,ThisWorkbook.Sheets(2).Range("A1:D136"), 2, 0)
End If
Next
End Sub
我不确定放在哪里放“帮助在这里”告诉它引用它正在查找的同一行的A列中的文本。我也不确定这是否是正确的方法循环这种情况?任何建议都非常感谢。非常感谢!
答案 0 :(得分:1)
对于“此处的帮助”,请查看您为A114更换K114的公式。这意味着您需要从列K中的当前单元格返回到A列。可以使用当前单元格的偏移量向左移动10列以到达A列。
Sub Ranking()
Dim cell As Range, rng As Range
Set rng = Range("K2:K120")
For Each cell In rng
If cell.Value <> "" Then
cell.Offset(0, 1).Value = cell.Value
Else
cell.Offset(0, 1).Value = WorksheetFunction.VLookup(cell.Offset(0, -10).Value, ThisWorkbook.Sheets(2).Range("A1:D136"), 2, 0)
End If
Next
End Sub