2016-03-30 36 views
0

我已經看過幾個線程,並且有一些觸及我的問題,但是,我從來沒有使用過VBA,也不知道如何改變編碼以適應我的問題。用第二張紙上的數據覆蓋一張紙上的行數據,滿足4個條件

我想從片材1覆蓋於片材2的數據行,從而提供在列中的數據A,B,C & d(實時數據起始行2)是在兩個片材的匹配1 & 2.

實質上,工作表2是我的數據存儲,工作表1是工作表2的模板。前四列中所有可能的數據組合已經存在於工作表2中,其餘數據未知。所以當我得到那些未知的數據時,我想覆蓋表2中的那一行。

很多人已經做出了關於複製行在某一列中搜索特定術語的位置的線索,而我將許多不同的術語來搜索,但正如我所說,他們將需要在兩張表上匹配。

希望我有道理!請幫忙!

+0

如果你不知道我的VBA認爲這將是更好地去自由職業者的網站,並張貼此作爲一個工作,你會得到它與花費的金額不大很快完成。否則,請提供你已經嘗試過的東西以及你卡在哪裏。 – user1429899

回答

0

你也許可以用公式來做到這一點,而不是使用VBA。

如果你沒有頭粘貼此公式到工作表Sheet1的單元格E1:

=IF(AND(A1=INDEX(Sheet2!A:A,MATCH(A1,Sheet2!A:A,FALSE)),B1=INDEX(Sheet2!B:B,MATCH(B1,Sheet2!B:B,FALSE)), C1=INDEX(Sheet2!C:C,MATCH(C1,Sheet2!C:C,FALSE)),D1=INDEX(Sheet2!D:D,MATCH(D1,Sheet2!D:D,FALSE))),INDEX(Sheet2!E:E,MATCH(A1,Sheet2!A:A,FALSE)),"NO") 

或者這一個爲E2,如果你有一個標題行:

=IF(AND(A2=INDEX(Sheet2!A:A,MATCH(A2,Sheet2!A:A,FALSE)),B2=INDEX(Sheet2!B:B,MATCH(B2,Sheet2!B:B,FALSE)), C2=INDEX(Sheet2!C:C,MATCH(C2,Sheet2!C:C,FALSE)),D2=INDEX(Sheet2!D:D,MATCH(D2,Sheet2!D:D,FALSE))),INDEX(Sheet2!E:E,MATCH(A2,Sheet2!A:A,FALSE)),"NO") 

然後拖動整個使用在單元格右下方的切換點就像您希望列從工作表2進入一樣。

然後突出顯示剛剛創建的整行,然後將右下方的小切換拖到工作表的最下方,因爲您有數據(或者嘗試雙擊切換到自動填充)。

我在一小組數據上嘗試了這一點,它似乎可以工作,因此它應該適用於較大的數據集,只要sheet1上的4列的所有可能的變體都可以在sheet2上使用,並在以下列中包含相關數據。

如果在任何單元格中得到「否」的結果,則Excel無法在sheet2中找到與sheet1上匹配的確切組合的行。

編輯 - 更新下面的答案。

試試這個,這對你來說更有可能。

Sub CopyItOver() 

Dim sh1 As Worksheet, sh2 As Worksheet 
Set sh1 = Sheets("Sheet1") 
Set sh2 = Sheets("Sheet2") 

    For Each c1 In sh1.Range("A1", sh1.Range("A1").End(xlDown)) 
     For Each c2 In sh2.Range("A1", sh2.Range("A1").End(xlDown)) 
      If c2.Value = c1.Value Then 
       If c2.Offset(0, 1).Value = c1.Offset(0, 1).Value Then 
        If c2.Offset(0, 2).Value = c1.Offset(0, 2).Value Then 
         If c2.Offset(0, 3).Value = c1.Offset(0, 3).Value Then 
          c1.EntireRow.Value = c2.EntireRow.Value 
         End If 
        End If 
       End If 
      End If 
     Next c2 
    Next c1 

End Sub 
+0

不幸的是我無法使這種方法工作。我在E欄第1頁中爲這個公式創建了一個額外的列,將剩下的列推出(F到AA)。我在表2中也做了相同的操作,以避免數據覆蓋到錯誤的單元格中。公式運行時,它會提示我打開一個文件(我假設有一個目標需要更新?)我點擊了工作簿中的相關工作表,但它似乎並不喜歡它,當我嘗試時它會執行相同的操作沿着或向下拖動單元格。之後,我收到了來自Excel的錯誤消息,告訴我使用插入功能選項。 –

+0

您的圖紙名爲Sheet1和Sheet2還是別的? –

+0

更新 - 我在更改工作表的'sheet2'名稱時犯了一個錯誤,我忘記了工作表名稱周圍的逗號。我還在索引數組周圍包含了美元符號,因爲它們在我拖動單元格時發生了變化。 不幸的是,雖然仍然沒有工作,但現在沒有文件提示,但所有單元剛剛讀取#N/A –

相關問題