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

时间:2013-07-12 15:25:25

标签: excel-vba if-statement excel-2007 vba excel

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

单元格E21和F21合并,值变化。我有一个从o1到o100彼此相同的数字列表,并且p q r s t u的值相同,表示值是常数。

我需要一个宏来检查单元格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

感谢所有帮助

1 个答案:

答案 0 :(得分:1)

我并不完全确定你在寻找什么,但你需要写一个For Each ... Next循环来循环遍历每个单元格并检查它的值。 Excel不知道您想要查看这些范围中的每个单元格,因此您需要告诉它使用循环。

尝试使用此功能。

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

http://msdn.microsoft.com/en-us/library/office/aa221353(v=office.11).aspx