VBA在表格列中查找具有值的最后一行

时间:2016-03-28 16:26:12

标签: excel vba excel-2013

我有一张桌子,上面有几个项目。这些项目都有一个代码,它们会一行一行地重复。我的意思是挑出一个表中项目的最后一次'重复',我需要有地址或行参考,我可以使用的东西,所以我可以稍后将它带到一个新的表,我将每月我们项目当前状态的概述,见第一个表格。 而我几乎得到了它,以下代码:

'codTeste is a integer in this example
codTeste = Range("AE:AE").Find(what:="REST0300", after:=Range("AE1"), searchdirection:=xlPrevious).Row

是否有效,但不是这样的:

codTeste = Range(tblDesc.DataBodyRange.Address).Find(what:="REST0300", after:=Range(TheFirstCellOfTheRelevantColumnDataBodyRange), searchdirection:=xlPrevious).Row
    'If I do this it'll throw me a mismatch error

重点是使其更具动态性,以便不将find方法限制为非常特定的范围参数......

2 个答案:

答案 0 :(得分:0)

这对我有用:

Dim trng As Range, f As Range, inCol As Long
Set trng = ActiveSheet.ListObjects("Table1").DataBodyRange

useCol = 2

Set f = trng.Columns(inCol).Find(what:="77", LookIn:=xlValues, lookat:=xlWhole, _
        searchdirection:=xlPrevious, after:=trng.Columns(inCol).Cells(1))

If Not f Is Nothing Then Debug.Print f.Row

答案 1 :(得分:0)

将inCol调整为整数

inCol =工作表(" Sheet1")。Cells.Find(What:=" Product Code",After:= Worksheets(" Sheet1")。 (" A1"),LookIn:= xlValues,LookAt:= xlWhole,SearchOrder:= xlByRows,SearchDirection:= xlPrevious).Column

我无法发表评论,但这会找到名称为@steps

的列号