基本上我为我的宏设置了一个范围,但我希望能够获得最后一行,因为每次使用不同的数据库它都会改变。
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列(对于每一行)
答案 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