首页 > 解决方案 > 复制粘贴区域大小不一样?

问题描述

Dim lastrow&, lastCol&, myarray As Range
lastrow = Range("A1").End(xlDown).Row
lastCol = Range("XX1").End(xlToLeft).Column
Set myarray = Range("A1").Resize(lastrow, lastCol)
Range("A1", myarray).Select

所以我添加了上面的代码来识别最后一列和最后一行并复制数组

 Selection.Copy
    Application.CutCopyMode = False
    Selection.Copy
    Application.WindowState = xlNormal
    Windows("Ex-Pakistan Calculator Final.xlsm").Activate
    Sheets("MRG").Select
    'has to find the last row by itself
    Range("A" & Rows.Count).End(xlUp).Offset(2, 0).Select
    ActiveSheet.Paste

在最后一行“activesheet.paste”上出现错误,说复制和粘贴区域的大小不同,请尝试选择一个单元格。在此处输入图像描述

问题是,"Range("A" & Rows.Count).End(xlUp).Offset(2, 0).Select" 只选择一个单元格,所以我没有看到问题。

标签: excelvba

解决方案


以下是使用范围选择进行复制和粘贴的理想方式。您可以根据需要更改此代码。

Sub CopyPaste()
    Dim selectRange As range
    Dim lastrow As Integer
    Application.CutCopyMode = False
    Sheets("Sheet1").Activate
    lastrow = range("A1").End(xlDown).Row
    Set selectRange = range("A1:A" & lastrow)
    selectRange.Copy
    Sheets("Sheet2").range("B1:B" & lastrow).PasteSpecial xlPasteAll
End Sub

推荐阅读