vba通过列查找单元格数据,如果没有,则查看下一列

时间:2017-04-21 22:13:19

标签: excel vba excel-vba

这与Find data in a column from a cell reference in another worksheet then copy some data to another worksheet有关 如果他们毕业了一个月,我需要找一个班级名称。用于查找引用的月份在另一个表中。应首先在G列中搜索毕业月份,如果搜索没有找到任何内容,则在下一列中搜索。 这是我到目前为止,但这只搜索一列。我不知道如何去寻找其他专栏。搜索应该停止找到值的第一个实例。

Sub Hierarchy()

Dim shOUT As Worksheet
Dim nfo As Worksheet
Dim Month As Range

Dim a As Long
Dim thisvalue As String

Set nfo = Worksheets("Info")
Set shOUT = Worksheets("Output")
Set Month = nfo.Range("A2")

With shOUT
        ' Loop through each row
        For a = 2 To 10
            thisvalue = .Cells(a, 7).Value
            If thisvalue Like Month.Value Then ' <-- check the names

            nfo.Range("A5").Value = .Cells(a, 2).Value
            nfo.Range("A6").Value = .Cells(1, 7).Value

            End If
        Next a
End With

End Sub

1 个答案:

答案 0 :(得分:1)

我认为一个额外的循环,加上一些小的编辑可能就足够了:

For b = 7 To 8
    For a = 2 To 10
        thisvalue = .Cells(a, b).Value
        If thisvalue Like Month.Value Then ' <-- check the names
            nfo.Range("A5").Value = .Cells(a, 2).Value
            nfo.Range("A6").Value = .Cells(1, b).Value
            Finished = True
            Exit For '<-- skip the rest, we're done
        End If
    Next a
    If Finished = True Then Exit For
Next b

可能需要一些调整(因为我对A5和A6的更新不太确定),但这个概念很合理。

我添加了一些你需要声明的变量(b和Finished)。