Excel VBA:循环Vlookup

时间:2016-10-03 23:01:08

标签: excel vba excel-vba

我是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列中的文本。我也不确定这是否是正确的方法循环这种情况?任何建议都非常感谢。非常感谢!

1 个答案:

答案 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