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

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

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列,这是在列K,但抵消列P(每行)

在你的范围内使用&可以改变数据的最后一行。 看下面两种不同的方法来计算最后一行。 如果您有更多的方法来查找最后一行数据, 这是一个很好的资源。

 '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