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

vba通过列查找单元格数据,如果没有,则查看下一列,vba,excel,Vba,Excel,这是关于 如果他们在某个月毕业,我需要找到一个班名。用于查找引用的月份在另一张表中。应首先在G列中搜索毕业月份,如果搜索未找到任何内容,则在下一列中搜索。 这是我到目前为止所拥有的,但这只搜索一列。我还不知道如何搜索其他栏目。搜索应停止找到该值的第一个实例 Sub Hierarchy() Dim shOUT As Worksheet Dim nfo As Worksheet Dim Month As Range Dim a As Long Dim thisvalue As String S

这是关于 如果他们在某个月毕业,我需要找到一个班名。用于查找引用的月份在另一张表中。应首先在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
子层次结构()
工作表
将nfo设置为工作表
暗月范围
暗淡如长
将此值设置为字符串
Set nfo=工作表(“信息”)
设置输出=工作表(“输出”)
设置月份=信息范围(“A2”)
呼喊
'循环通过每一行
对于a=2到10
thisvalue=.Cells(a,7).Value

如果该值与Month.Value类似,则'我估计有一个额外的循环,再加上一些小的编辑可能就足够了:

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
用于b=7到8
对于a=2到10
thisvalue=.Cells(a,b).Value

如果此值与Month.Value类似,则“只需在If语句中添加一个
GoTo
”。谷歌“GoTo in VBA”,如果你不知道如何使用它。我已经声明b为Long并以布尔形式结束,但我现在在下一个a上得到一个错误。没有forHi Steve的情况下编译错误,谢谢你的帮助。我想让你知道,我在If Finished语句中添加了一个End If,以结束If Finished语句。啊,是的。我想你一定是把
If-Then
分成了多行。当全部在一行上时,如果需要,则无
结束。