将数据从一个shee复制到另一个替换而不是追加
问题描述:
我想知道这段代码中的错误。我的目标是将数据从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
答
这将从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
我想你想这样一些事还请更新您的代码以获取其他人的利益。 –
skkakkar