невозможно скопировать и вставить, если размер области не совпадает - PullRequest
0 голосов
/ 06 февраля 2020
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).

Ошибка 1004, невозможно вставить, потому что область копирования и область вставки не совпадают

Я пробовал разные варианты, включая активный лист. Вставить и xlpastevalues ​​безрезультатно.

Range("A" & Rows.Count).End(xlUp).Offset(2, 0).Select выбирает одну ячейку в столбце A, чтобы найти последнюю использованную строку, и смещает ее на 2 строки, чтобы я мог вставить ее под существующие данные. Не уверен, почему возникает ошибка 1004, потому что репликация выбора массива и вставка его в одну ячейку в Excel не запускает ошибок.

Любая помощь очень ценится; Я действительно новичок в VBA, и большая часть этого кода пришла из разных источников онлайн.

1 Ответ

0 голосов
/ 06 февраля 2020

Пока исходные данные не имеют пустых строк или столбцов, вы можете сделать это:

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

При условии, что есть место для вставленных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...