找到了具有特定值的单元格,如何引用该单元格以在整列中搜索另一个值

时间:2019-05-31 17:14:23

标签: excel vba

我正在尝试在excel中编写一个程序,用户在其中输入一个值,然后在其他工作表中搜索该值,找到具有该值的列,然后在该列的行中搜索晚于当前日期的日期,并返回值晚于当前日期的行第1列的内容。

到目前为止,我已经能够找到具有输入值的单元格,但是我仍然坚持如何引用找到的单元格的列以使整个列都搜索日期。

下面是到目前为止的内容,我想我应该在“ If Worksheets(i).Cells(2,j).Value = Method Then”之后输入另一个If语句:“ If Worksheets(i).Cells( ?,?)。Value> = Today()然后”,但是我不确定如何引用我要搜索的单元格,因为这些单元格取决于上一条语句中的位置。

Private Sub CommandButton1_Click()

totalsheets = Worksheets.Count
Method = Worksheets("Search a Method").Cells(3, 6).Value

For i = 1 To totalsheets
    If Worksheets(i).Name <> "Search a Method" Then

    lastcolumn = Worksheets(i).Cells(2, Columns.Count).End(xlToLeft).Column

    For j = 2 To lastcolumn
        If Worksheets(i).Cells(2, j).Value = Method Then

        Worksheets("Search a Method").Activate

        lastrow = Worksheets("Search a Method").Cells(Rows.Count, 1).End(xlUp).Row
        Worksheets("Search a Method").Cells(lastrow + 1, 1).Value = Worksheets(i).Name

        End If
    Next
    End If
Next

End Sub

1 个答案:

答案 0 :(得分:1)

在我关于使用.Find()的建议的基础上,以下示例应提供一些指导:

Dim findrng As Range, col As Long, method As String
method = "dog"
With Sheets(1)
    Set findrng = .Rows(2).Find(what:=method, LookIn:=xlValues, LookAt:=xlPart, searchorder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
End With
col = findrng.Column
Debug.Print col

我在单元格(2,2)中放入了“ cat”,在单元格(2,3)中放入了“狗”,因此使用上面的代码,即时窗口读取了“ 3”,表示列method被发现。


以上图片:

enter image description here