2017-07-31 39 views
-1

我剛從一個新的程序員開始,我試圖創建Vba代碼來掃描Excel中的以下數據。Excel:具有多個條件的掃描列

假設

Apple = 123456 

Apple Juice = 987654 

Pear = 234567 
Pear Juice = 987654 

Orange = 345678 

Orange Juice = 987654 

每個項目的代碼將被給出,但我要的是編寫一個程序來檢測特定的代碼和分配給它的名字(蘋果,蘋果汁等等)。如果首先出現「123456」,那麼它下面的單元格將被分配「Apple Juice」。如果首先出現「234567」,那麼它將被分配「梨汁」。對於我來說這是具有挑戰性的,因爲果汁類別共享相同的「987654」,不同於具有獨特的FruitNo分配給它的水果。

但是,我很難編寫用於掃描上述單元格的代碼。我嘗試過使用ActiveCellOffset,但它似乎沒有按照我想要的方式運行。

The following codes are what I have tried so far.

And this is the outcome I would like to have. The red letters are the names that the program is suppose to come up with.

+0

請閱讀[在什麼情況下,我可以在我的問題中添加「緊急」或其他類似的短語,以獲得更快的答案?](// meta.stackoverflow.com/q/326569) - 總結是這個不是解決志願者問題的理想方式,而且可能對獲得答案起反作用。請不要將這添加到您的問題。 – halfer

+0

您可以提供您的工作表的快照,也可以提供迄今爲止您嘗試過的代碼嗎? – Zac

+0

嗨zac,Ive編輯了帖子,並在其中添加了快照。 – Benjamin

回答

0

If FruitNo = 987654 And ActiveCell.Offset(-1, 0) = 123456 Then 

改變你的代碼

If FruitNo = 987654 And Range("A" & i).Offset(-1, 0) = 123456 Then 

應該解決您的問題(與同爲另一IF條件)。但是,這也可以使用公式來實現。

+0

嗨Mrig,它非常適合我,非常感謝你。如果可能的話,是否可以調整代碼,使其不僅掃描上面的單元格,而是掃描它上面的5個單元格,但沒有在代碼中指定要掃描它上面的5個單元格? – Benjamin

+0

@Benjamin - 很難確定你的數據是如何得到的,所以採樣數據的屏幕截圖會有幫助。 – Mrig

+1

非常感謝您的幫助。不再需要調整代碼。謝謝! – Benjamin