使用VBA从Excel表格中查找行

使用VBA从Excel表格中查找行,vba,excel,excel-2007,Vba,Excel,Excel 2007,在Excel中,我使用表格将动态数据存储在单独的工作表中。输入新数据就像一种魅力,然而,我希望能够从该表中动态检索一行并将其数据存储在变量中。我更愿意构建一个函数,这样我就可以执行以下操作: findFromCatsByDate(searchterm) 'returns a single row if found with mathing date. 请注意,表格是动态的,不是固定范围(因此它会垂直变化)。我想在其他表上稍加修改就重用这个函数。我需要一个例子如何在VBA中实现这一点 谢谢,这将

在Excel中,我使用表格将动态数据存储在单独的工作表中。输入新数据就像一种魅力,然而,我希望能够从该表中动态检索一行并将其数据存储在变量中。我更愿意构建一个函数,这样我就可以执行以下操作:

findFromCatsByDate(searchterm) 'returns a single row if found with mathing date.
请注意,表格是动态的,不是固定范围(因此它会垂直变化)。我想在其他表上稍加修改就重用这个函数。我需要一个例子如何在VBA中实现这一点


谢谢,

这将返回与指定表中的
键匹配的行的引用

Function GetRow(TableName As String, ColumnNum As Long, Key As Variant) As Range
    On Error Resume Next
    Set GetRow = Range(TableName) _
        .Rows(WorksheetFunction.Match(Key, Range(TableName).Columns(ColumnNum), 0))
    If Err.Number <> 0 Then
        Err.Clear
        Set GetRow = Nothing
    End If
End Function
Sub zx()
    Dim r As Range
    Set r = GetRow("MyTable", 1, 2)
    If Not r Is Nothing Then
        r.Select
    End If
End Sub