Excel VBA宏如果在多个单元格中找到单元格,则

Excel VBA宏如果在多个单元格中找到单元格,则,excel,if-statement,excel-2007,vba,Excel,If Statement,Excel 2007,Vba,我需要以下if-then语句的帮助。我会尽力解释的 单元格E21和F21被合并,且值不同。我有一个从o1到o100的数字列表,对于pqrstu,它们的值是恒定的 我需要一个宏来检查单元格E21中的值在哪一列,并将数字(即宏中的数字)放入单元格E23(也与F23合并) 下面是仅检查单元格o1时有效的宏,但如果将其更改为o1:o100则无效。宏是非常基本的,只是第一部分。请告诉我如何让宏搜索整个列表 Sub RunSelect() If Range("E21").Value = Range

我需要以下if-then语句的帮助。我会尽力解释的

单元格E21和F21被合并,且值不同。我有一个从o1到o100的数字列表,对于pqrstu,它们的值是恒定的

我需要一个宏来检查单元格E21中的值在哪一列,并将数字(即宏中的数字)放入单元格E23(也与F23合并)

下面是仅检查单元格o1时有效的宏,但如果将其更改为o1:o100则无效。宏是非常基本的,只是第一部分。请告诉我如何让宏搜索整个列表

Sub RunSelect()

    If Range("E21").Value = Range("o1:o100").Value Then
        Range("E23").Value = "3"

    ElseIf Range("E21").Value = Range("p1:p100").Value Then
        Range("E23").Value = "4"

    Else: MsgBox ("Incorrect number entered")

    End If

End Sub

感谢所有的帮助

我不完全确定您在寻找什么,但您需要为每个……下一个循环编写一个循环,以循环每个单元格并检查其值。Excel不知道您想查看这些范围内的每个单元格,因此需要使用循环告诉它

试着用这个

For Each c In Worksheets("Sheet1").Range("O1:O100").Cells
     If c.Value = Range("E21").Value Then Range("E23").Value = "3"
        Next

有点不清楚。。。对我来说:(O1到O100是一个范围,如果该范围内的任何单元格与E21匹配,您希望获得…什么?为什么是3?为什么是4?…对不起,断章取义地意识到这没有任何意义,只是一点信息,以便其他人可以使用它。每辆车都有一个3到9的数字,每个位置都有一个4位数字。所有位置都列在COLLMNS o到u中。我们只处理数字。车辆只去特定的地点,如果我们收到订单,我们需要检查它需要去哪辆车。电子表格已经输入了所有其他细节,这将使新员工更容易检查文件发送到哪里,而不是每次都查看整个列表我需要什么。也谢谢你的网站。这就是我一直回到stackoverflow的原因。我不只是得到答案,我从中得到解释和理解。