动态范围未在Excel VBA中正确粘贴

时间:2013-07-18 12:52:24

标签: excel vba dynamic excel-vba copy-paste

我有一个包含两个工作表的工作簿。工作表“Sheet2”具有新月份数据和工作表“审计分数”是我将数据复制到的工作表。我编写的代码是在“Sheet2”列c中检查设备名称并在“审计分数”中找到匹配的代码,然后从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

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

您已激活审核分数,但您的检查不会对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

(分为2行以便于阅读)