2015-10-17 52 views
0

我想知道這段代碼中的錯誤。我的目標是將數據從sheet2複製到sheet1。該代碼正在工作,但將複製到shee1的記錄替換爲row1中的數據,但不會附加。我想要將數據複製到每一行下面。將數據從一個shee複製到另一個替換而不是追加

Set ws = Sheets("Sheet2") 
    With ws 
     Set rngsh1 = .UsedRange 
    End With 
    For Each cel1 In rngsh1 
      With Sheets("Sheet1") 
       Set rng = .Rows(1).Find(cel1, LookIn:=xlValues, LookAt:=xlWhole) 
       If Not rng Is Nothing Then 
        cel1.Offset(, 1).Copy .Cells(rng.Row + 1, rng.Column) 
       End If 
      End With 

    Next 
+1

我想你想這樣一些事還請更新您的代碼以獲取其他人的利益。 – skkakkar

回答

1

這將從Sheet2中追加值到新行工作表Sheet1上:

For Each cel1 In Worksheets("Sheet2").UsedRange 

    With Worksheets("Sheet1") 

     Set rng = .UsedRange.Rows(1).Find(cel1, LookIn:=xlValues, LookAt:=xlWhole) 

     If Not rng Is Nothing Then 
      .Cells(.UsedRange.Rows.Count + 1, rng.Column) = cel1.Offset(, 1) 
     End If 

    End With 

Next 

但您最初的代碼只搜索行1工作表Sheet1上。我要搜索的所有值:

For Each cel1 In Worksheets("Sheet2").UsedRange 

    With Worksheets("Sheet1") 

     Set rng = .UsedRange.Find(cel1, LookIn:=xlValues, LookAt:=xlWhole) 

     If Not rng Is Nothing Then 
      .Cells(.UsedRange.Rows.Count + 1, rng.Column) = cel1.Offset(, 1) 
     End If 

    End With 

Next 
+0

謝謝。我通過將此行中的+1更改爲變量LastRow'cel1.Offset(,1).Copy .Cells(rng.Row + 1,rng.Column)'來實現我的任務'我還查看了您建議的兩個選項,但數據不會複製到一行中。例如。它會複製到A1然後B2然後C3等.... – Sabha

相關問題