[英]Compare worksheets and insert new rows
我目前有兩張工作表,其中六列數據都采用相同的格式,除了工作Sheet 1
具有歷史數據,工作sheet 2
具有更新的數據以及一些其他行。 兩張紙均按第二列和第四列的內容順序排序。
我要准備用於比較兩個片和低頭的第2和第4列,以確定新行宏Sheet 2
中沒有的Sheet 1
和顏色突出顯示這些行Sheet 2
。 此外,我希望將工作sheet 2
的新行以正確的順序插入工作表1中。
例如
之所以要執行所有這些操作,而不僅僅是將工作Sheet 2
的全部內容復制到工作Sheet 1
是因為工作sheet 1
擁有超過6列的許多公式,這些公式引用了某些單元格塊,並且需要保留這些引用。 我目前必須手動插入每個新行,並考慮到要處理的數據量,這需要相當長的時間。 我曾嘗試修改我在互聯網上找到的其他宏來執行此任務,但是它們工作不大。
使用以下公式在兩個工作表中創建一個新的列E:
=B2&D2
(從第2行開始,並自動將其填充到整列)
在sheet2中,使用此公式創建列F
=ISERR(VLOOKUP(Sheet2!E2,Sheet1!E:E,1,FALSE))
現在,僅對於不在sheet1中的行,列F將為TRUE
。
接下來,您需要為F=TRUE
添加條件格式
F=TRUE
過濾來自sheet2的行 如果從Sheet2的Sheet2的數據下面的Sheet2中復制數據(不包括標題),然后a)刪除重復項,然后b)在B和D列上進行排序,則應該獲得所需的結果。
Sub collect_and_sort()
With Sheets("sheet1")
Sheets("sheet2").Cells(1, 1).CurrentRegion.Offset(1, 0).Copy _
Destination:=.Cells(Rows.Count, 2).End(xlUp).Offset(1, -1)
With .Cells(1, 1).CurrentRegion
.RemoveDuplicates Columns:=Array(2, 4), Header:=xlYes
.Cells.Sort Key1:=.Columns(2), Order1:=xlAscending, _
Key2:=.Columns(4), Order2:=xlAscending, _
Orientation:=xlTopToBottom, Header:=xlYes
End With
End With
End Sub
根據這樣的兩張紙上的數據(出於空間考慮,在一張紙上顯示),
宏運行后,您將擁有此功能。
我承認,Sheet1!B11:D11中的3000 / b是拼寫錯誤還是實際重復的記錄,目前尚不清楚。 該宏不會重現您想要的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.