如何根据第二列获取最接近日期的行位置?

时间:2019-07-09 07:45:20

标签: excel vba

我正在研究VBA项目,在这里我选择一个日期,然后在具有代码和日期(及其他信息)的表中搜索。我需要获取最接近的前一个(或相同,如果存在)日期和要检查的代码的行位置。(代码和日期可以按任何顺序排列。)

在图片中,您可以看到表4月16日是两次,但代码不同。因此,如果它搜索日期为4月17日,并使用代码“ V-1”,则应该将第8行丢给我,但是如果我使用代码“ V-2”,则应获取该表的第2行

我正在使用具有VBA和excel函数的Excel 365。

    Set search_sheet = Sheets("sheet 1")
    Set stlo = search_sheet.ListObjects("table_to_look")
    For Each cell In Range("table_to_look[code]")
        If cell.Value = repetead Then
            GoTo skipLoop
        End If
'The static values are just for the example, they would be dynamic
        Debug.Print Application.WorksheetFunction.Match(Application.WorksheetFunction.MaxIfs(stlo.DataBodyRange.Columns(5), _
stlo.DataBodyRange.Columns(5), "<=04-17-2019", _
stlo.DataBodyRange.Columns(1), "=V-1"), _
stlo.DataBodyRange.Columns(5))
        repetead = cell.Value
skipLoop:
    Next cell

使用该代码,即使我将第二个条件更改为“ = V-2”,它也始终打印第8行。

0 个答案:

没有答案