获取最后一行但将结果偏移到另一列

时间:2017-10-03 17:08:35

标签: excel vba excel-vba row

基本上我为我的宏设置了一个范围,但我希望能够获得最后一行,因为每次使用不同的数据库它都会改变。

Sub GetRegion()
Dim res As Variant
Dim RegionRange As Range, InitialRange As Range, c As Range
Set RegionRange = Range("K2:K4657")
Set InitialRange = Sheets("Matching Table").Range("A3:C114")
For Each c In RegionRange
    res = Application.VLookup(c, InitialRange, 3, False)
    If Not IsError(res) Then
        c.Offset(0, 5).Value = res
    End If
Next c
End Sub

它将下拉所有结果,让我们说从C列中的c,但是偏移到P列(对于每一行)

1 个答案:

答案 0 :(得分:2)

在您的范围中使用&,我们可以更改数据的最后一行。请参阅下文,了解计算最后一行的两种不同方法。如果您有更多方法可以找到最后一行数据,This是一个很好的资源。

'Option 1 find last row in col K (slightly faster)
With ActiveSheet
    LastRow = .Range("K" & .Rows.Count).End(xlUp).Row
    Set RegionRange = .Range("K2:K" & LastRow)
End With

'Option 2 find last row of entire worksheet (slower)
With ActiveSheet
    LastRow = .Cells.Find(What:="*", _
        After:=.Cells(1, 1), _
        LookIn:=xlFormulas, _
        LookAt:=xlPart, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlPrevious, _
        MatchCase:=False).Row
    Set RegionRange = .Range("K2:K" & LastRow)
End With