2015-05-09 64 views
0

我目前有兩張包含六列數據的工作表,兩者格式相同,但Sheet 1有歷史數據,sheet 2有較新的數據並有一些額外的行。兩張紙都按照第二欄中的內容順序排列,然後是第四欄。比較工作表並插入新行

我要準備用於比較兩個片和低頭第二和第四列識別Sheet 2新行不在Sheet 1和顏色Sheet 2突出這些行的宏。另外,我希望將sheet 2的新行以正確的順序插入到Sheet 1中。

對於實施例

image

之所以這樣做所有這一切,而不是僅僅複製的Sheet 2的全部內容到Sheet 1是因爲sheet 1具有許多公式,超過該基準的某些塊的6列細胞,並要求保留這些參考文獻。我目前不得不手動插入每一個新行,並給予正在處理的數據量,這需要相當長的一段時間。我嘗試過調整我在互聯網上找到的其他宏來執行這個任務,但他們不太合適。

+2

你不能用公式和條件格式來做到這一點嗎? –

+0

我們在這個問題上在哪裏?如果您收到答案,請將其標記 –

回答

1

步驟#1:識別與Sheet 2中的行,而不是在Sheet

創建一個新塔E在該式中兩片材:

=B2&D2 

(從行2和自動填寫開始到整列)

Sheet 2中創建F列與此式

=ISERR(VLOOKUP(Sheet2!E2,Sheet1!E:E,1,FALSE)) 

現在,列F僅適用於不在sheet1中的行的TRUE

接下來,您將需要添加的條件格式爲F=TRUE

第2步:從Sheet2的

  1. 過濾行復制丟失的數據與F=TRUE
  2. 將它們複製到工作表Sheet1中的
  3. Sort sheet1
0

如果您複製數據(excludedd )在Sheet1中的數據下面的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 

從上兩片這樣的(在一張紙上出於空間考慮示出)中的數據,

Collect and Sort before

宏運行後我們將看到這樣。

Collect and Sort after

我會承認我不清楚是否在3000/B在Sheet1 B11:D11是一個錯字或實際重複的記錄。宏確實重現您的預期結果。