Excel 循环一列直到最后一个非空行,通过userform VBA查找匹配的数据

Excel 循环一列直到最后一个非空行,通过userform VBA查找匹配的数据,excel,vba,loops,lookup,userform,Excel,Vba,Loops,Lookup,Userform,我被这个小问题难住了。这就是我的Excel数据的外观: 我有一个用户表单,它要求“色调”、“蒙塞尔值”和“蒙塞尔色度”值,它应该在D列(颜色名称)中给出值,作为消息框中的输出。我试图循环到最后一个非空行,检查A、B、C列是否匹配数据,然后给出相应的第4列作为输出 这是我的VBA代码: Sub Result() Dim r As Range Dim LastRow As Long SheetName = frmForm.cmbSheet Hue = frmForm.txtHue Value2

我被这个小问题难住了。这就是我的Excel数据的外观:

我有一个用户表单,它要求“色调”、“蒙塞尔值”和“蒙塞尔色度”值,它应该在D列(颜色名称)中给出值,作为消息框中的输出。我试图循环到最后一个非空行,检查A、B、C列是否匹配数据,然后给出相应的第4列作为输出

这是我的VBA代码:

Sub Result()

Dim r As Range
Dim LastRow As Long

SheetName = frmForm.cmbSheet
Hue = frmForm.txtHue
Value2 = frmForm.txtValue
Chroma = frmForm.txtChroma

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(SheetName)

LastRow = ws.Cells(Rows.Count, "A").End(xlUp).Row
    For Each r In ws.Range("A2:A" & LastRow)
        If r = Hue & r.Offset(0, 1) = Value2 & r.Offset(0, 2) = Chroma Then
        MsgBox r.Offset(0, 3).Value
        Exit Sub
        End If
    Next r

MsgBox ("No color found for these Munsell color values!")

End Sub
这是基本的用户表单:

每次运行代码时,我都会收到消息“找不到颜色…”。即使我在UserForm中输入了精确的匹配值。

更改

If r = Hue & r.Offset(0, 1) = Value2 & r.Offset(0, 2) = Chroma Then


非常感谢你,这么长时间以来我一直被困在这个问题上,我觉得很傻:)
If r = Hue and r.Offset(0, 1) = Value2 and r.Offset(0, 2) = Chroma Then