2015-06-20 69 views
-1

我是新來的Excel宏,需要幫助創建一個能夠幫助我在工作中大量工作的宏。將一個工作表中的單元格與另一個工作表中的列進行比較,然後在第三個工作表中打印行

我有兩個部分列表,在單獨的工作表中,兩者都是針對相同的應用程序,但一個是舊部件列表,另一個是新版本。有時零件清單中可能有一千個零件。

我需要對它們進行比較,看看是否有新零件列表的添加,以及是否有舊零件列表中已刪除的零件。 然後將添加的零件行復制到一個單獨的工作表中,名爲「Additions」,刪除的零件名稱爲「Removed」。

在比較之前也從列表中刪除重複項,因爲有時會有重複的零件號。將不得不刪除整行。

所以基本上我想知道是否有一種方法可以從B1開始將新單元格放入新列表中,並將它從B1開始逐個比較到舊零件列表中的B列。

如果在新列表上的下一個零件號碼上有匹配移動。

如果不存在,就像它到達空白單元格一樣,將零件號的行復制到新的工作表「添加」中。

反之亦然,將舊部件列表與新部件進行比較,如果沒有匹配,則將該行復制到工作表「已移除」。

回答

1

正如評論提到的那樣,它很難在沒有看到你已經嘗試過的情況下幫助你。爲了啓動你,我建議使用宏錄像機學習一些基本知識,如在單元之間移動,切換表單,複製值等。

這兩個組件我可以認爲宏錄製器不會能夠教你的是for循環和if語句。

for循環允許你「循環」一系列值,併爲每個單元格執行一次操作,而if語句允許你只有在條件滿足時才能執行某些操作(如複製單元格)如果兩個單元格相等)。

一個簡單的版本可能看起來像:

For i = 1 To 10 
    If Sheets(2).Range("A" & i).Value <> Sheets(1).Range("A" & i).Value Then 
     Sheets(3).Range("A" & i).Value = Sheets(2).Range("A" & i).Value 
    End If 
Next i 

我知道這是一個過於簡單化,但希望它會幫助你開始。祝你好運!

相關問題