Excel VBA中的dynamic范围不能正确粘贴

我有一个有两个工作表的工作簿。 工作表“Sheet2”具有新的月份数据和工作表“审计分数”是我将数据复制到的工作表。 我写的代码是假设检查“Sheet2”列c中的设备名称,然后在“审计分数”中find匹配的值,然后从Sheet2列e复制该值并粘贴到审计相应行的最后一列分数。 我遇到的问题是“审计分数”中粘贴的值不是“Sheet2”中的正确值。 希望这个错误是一个简单的,我只是盲目的。

代码如下:

Sub newdata() Dim x As Variant, y As Long, z As Long, v As Date LRow = Cells(Rows.Count, 2).End(xlUp).Row Lcol = Cells(3, Columns.Count).End(xlToLeft).Column v = Date Worksheets("Audit scores").Activate Cells(1, Lcol + 1).EntireColumn.Insert Cells(1, Lcol + 1).Value = v For y = 1 To LRow For z = 1 To LRow If Cells(z, "C").Value = Worksheets("Audit scores").Cells(y, "C").Value Then Worksheets("Sheet2").Cells(z, "E").Copy Destination:=Worksheets("Audit scores").Cells(y, Lcol + 1) Else: End If Next z Next y End Sub 

感谢你给与我的帮助。

您已经激活了审计分数 ,但您的支票不会检查Sheet2。

 If Cells(z, "C").Value = Worksheets("Audit scores").Cells(y, "C").Value Then 

应该

 If Worksheets("Sheet2").Cells(z, "C").Value = _ Worksheets("Audit scores").Cells(y, "C").Value Then 

(为了可读性分成两行)