【问题标题】:Dynamic range not pasting correctly in Excel VBA动态范围未在 Excel VBA 中正确粘贴
【发布时间】:2013-07-18 21:23:42
【问题描述】:

我有一个工作簿,上面有两个工作表。工作表“Sheet2”有新月份的数据,工作表“审计分数”是我将数据复制到的工作表。我写的代码是假设检查“Sheet2”列c中的设备名称并在“Audit scores”中找到匹配的名称,然后从Sheet2列e复制值并将其粘贴到Audit相应行的最后一列分数。我遇到的问题是“审核分数”中粘贴的值不是“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

感谢您能给我的任何帮助。

【问题讨论】:

    标签: vba dynamic excel copy-paste


    【解决方案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
    

    (为了便于阅读,分成两行)

    【讨论】:

    • 感谢您的帮助,解决了所有问题。我认为这是我的一些简单错误导致整个工作表都关闭了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 1970-01-01
    • 2011-09-21
    相关资源
    最近更新 更多