2013-07-12 54 views
0

我需要以下if語句的幫助。將盡我所能盡力解釋。VBA宏如果在多個單元格中找到單元格然後

單元格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 

感謝所有幫助

+0

這是一個有點不清楚......我:(O1到O100是一個範圍,如果在該範圍內的任何單元格匹配E21你想......什麼?爲什麼3?爲什麼4?... –

+0

對不起,在沒有任何意義的情況下意識到,只是一些信息,以便其他人可以使用它。每輛車都有一個從3到9的數字,每個位置有一個4位數號碼,所有地點都列在o列中,我們只使用數字,車輛只能到達特定地點,如果我們收到訂單,我們需要檢查它需要去哪個車輛,電子表格已經輸入了所有其他詳細信息所以這會讓新員工更容易檢查重新發送文件,而不是每次都瀏覽整個列表。 – user1955214

回答

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

+0

完美,完全符合我的需求。感謝您的網站以及。這就是爲什麼我一直回到stackoverflow。我不只是得到答案,我得到解釋和理解。 – user1955214

+0

很高興我能提供幫助。渴望學習是你需要的一切:) –

相關問題