带有当前区域引用的简单VBA Vlookup循环

时间:2015-07-24 19:16:23

标签: excel vba excel-vba loops vlookup

我的VB代码有LookupVals列,它成功查找列表中的第一个值,但我希望它继续运行并查看所有这些值 - 并将结果打印在单元格低于第一个结果。

到目前为止我所拥有的编码:

Private Sub CommandButton4_Click()

LookupVal = Sheets("Sheet1").Range("B16").Value
Range("A5").Formula = "=VLOOKUP(" & LookupVal & ",Sheet2!" & Sheets("Sheet2").Range("A4").CurrentRegion.Address & _
",Sheet1!G13,FALSE)"

End Sub

该公式还包含col_index_value的单元格(G13,第1页)中保存的值。

有关将其循环到A6,A7等的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

使用计数器循环行。使用(" A"& lRow)代替硬编码行(" A5")。

    Dim ws As Excel.Worksheet
    Dim lRow As Long

    Set ws = ActiveWorkbook.Sheets("Sheet1")
    ws.Activate

    lRow = 5
    Do While lRow <= ws.UsedRange.Rows.count

        'Do your code here.

         LookupVal = Sheets("Sheet1").Range("B16").Value
         ws.Range("A" & lRow).Formula = "=VLOOKUP(" & LookupVal & ",Sheet2!" &    Sheets("Sheet2").Range("A4").CurrentRegion.Address & _
         ",Sheet1!G13,FALSE)"

        lRow = lRow + 1
        ws.Range("A" & lRow).Activate
    Loop