VBA 错误地复制数据

VBA incorrectly copying data

提问人:Maverick 提问时间:11/15/2023 最后编辑:Maverick 更新时间:11/16/2023 访问量:92

问:

我正在尝试使用VBA从一张工作表复制数据并将其作为值粘贴到另一张工作表中。代码应将新数据粘贴到目标工作表中任何现有数据下方 2 行。

我的代码当前将数据放在正确的位置。但是,它不会从源工作表复制数据。相反,它复制了目标工作表名称,我不确定为什么。

Sub CopyAndPasteData()
    Dim wsSource As Worksheet
    Dim wsDestination As Worksheet
    Dim lastRow As Long
    
    ' Set the source and destination worksheets
    Set wsSource = Worksheets("Sheet1")
    Set wsDestination = Worksheets("Sheet2")
    
    ' Find the last row with data in column A of the destination sheet
    lastRow = wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Row
    
    ' Copy values from rows A106:A110 of the source sheet
        wsDestination.Cells(lastRow + 2, 1).Resize(5, 1).Value = wsSource.Range("A106:A110").Value

End Sub
    
Excel VBA

评论

1赞 BigBen 11/16/2023
顺便说一句,这是不必要的 - 你一开始就没有使用剪贴板。此外,无法复制。Application.CutCopyMode = False
0赞 Maverick 11/16/2023
@BigBen 已记录并删除 - 谢谢。我还尝试在新工作簿中复制它,但它不起作用。事实上,它不会复制任何内容,也不会抛出任何错误。你对解决方案或替代逻辑有什么想法吗?
1赞 CDP1802 11/16/2023
如果宏与工作表前缀位于同一工作簿中,例如Worksheets()ThisWorkbookSet wsSource = ThisWorkbook.Worksheets("Sheet1")
0赞 Maverick 11/16/2023
@CDP1802,谢谢。但同样的问题仍然存在。
3赞 Paul 11/16/2023
您不是在复制整行,而是在复制 A 列 (A106:A110) 中的一组垂直的五个单元格。如果我运行你的代码,它就会这样做;我没有得到工作表名称。

答: 暂无答案