2017-10-11 80 views
0

我有一個代碼在另一個工作表中查找新值,並將新值複製到我的原始工作表的1行,完美工作,但現在,我需要更改代碼以便複製只有新發現的值(1個電池),但整個行,我試圖改變代碼,但我無法得到它的工作,這裏是只複製一個單元代碼:將整行復制到另一個工作表

Dim Lastrow  As Long 'the last row in Sheet2 col E 
    Dim iRow1   As Long 'the row number on Sheet1 
    Dim Sh1   As Worksheet 
    Dim Sh2   As Worksheet 

    Set Sh2 = ThisWorkbook.Worksheets("originalwkb") 
Set Sh1 = Workbooks("383839.xlsb").Sheets(3) 

ThisWorkbook.Activate 
    Lastrow = Sh2.Range("e65536").End(xlUp).Row 

    iRow1 = 2 

    ' Loop through values in column E of Sheet1 


    Do 
     Set FindCell = Sh2.Range("E2", Sh2.Cells(Lastrow, "E")).Find(What:=Sh1.Cells(iRow1, "E"), _ 
      After:=Sh2.Range("E2"), LookIn:=xlValues, LookAt:=xlWhole) 
     If FindCell Is Nothing Then 
     'add to bottom of list 
     Lastrow = Lastrow + 1 
     Sh2.Cells(Lastrow, "E") = Sh1.Cells(iRow1, "E") 
     End If 
     iRow1 = iRow1 + 1 
    Loop Until IsEmpty(Sh1.Cells(iRow1, "E")) 
+0

整個行中的值被發現或直到幷包括最後一列在值存在的行?該範圍內是否有空白可以複製? – QHarr

+0

如果您有一定數量的列要複製到找到的單元格旁邊,則可以使用調整大小方法來捕獲相鄰單元格值。 – QHarr

+0

找到整行的值,例如列A:Z(即使找到的值在列E上),兩張表中的所有列匹配(A:Z)。 – Roca

回答

0

您需要更改以下行。

Sh2.Cells(Lastrow, "E") = Sh1.Cells(iRow1, "E") 

Sh2.Rows(Lastrow).Value = Sh1.Rows(iRow1).Value 

編輯:沒看到@Scott克拉納回覆,因爲我不讀答案。猜猜我們可以給他這個答案一些學分:)

+0

完美!和斯科特的答案一樣。像魅力一樣工作! – Roca

+0

@Roca是啊沒有看到他的回覆。我編輯我的帖子也給他一些功勞。 – Teasel

相關問題