【问题标题】:cannot copy and paste when area size is not the same区域大小不同时无法复制和粘贴
【发布时间】:2020-02-06 03:48:36
【问题描述】:
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

所以基本上,我正在尝试选择一个可能会有所不同的数组,我知道它从 A1 开始,但我不确定它将在哪一行和哪一列结束。上面的代码可以很好地帮助复制这个数组。

Application.CutCopyMode = False
Selection.Copy
Application.WindowState = xlNormal
Windows("macrofile.xlsm").Activate
Sheets("MRG").Select
'has to find the last row by itself
Range("A" & Rows.Count).End(xlUp).Offset(2, 0).Select
ActiveCell.PasteSpecial (xlPasteAll)

最后一行ActiveCell.PasteSpecial (xlPasteAll) 出现错误。

Error 1004, can't paste because copy area and paste area aren't the same

我尝试了不同的变体,包括 activesheet.paste 和 xlpastevalues,但均无济于事。

Range("A" & Rows.Count).End(xlUp).Offset(2, 0).Select 选择 A 列中的单个单元格以查找最后使用的行并将其偏移 2 行,以便我可以粘贴到现有数据下方。不知道为什么会出现错误 1004,因为复制选择数组并将其粘贴到 Excel 中的单个单元格中不会出现错误。

非常感谢任何帮助;我对 VBA 真的很陌生,大部分代码来自不同的在线来源。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    只要源数据没有空白行或列,您就可以这样做:

    ActiveSheet.Range("A1").Currentregion.Copy _
      Workbooks("macrofile.xlsm").Sheets("MRG").Cells(Rows.Count, "A").End(xlUp).Offset(2,0)
    

    假设粘贴的数据有空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多