как использовать диапазон с переменными - ошибка 1004 продолжает всплывать - PullRequest
0 голосов
/ 23 марта 2020
Dim lastrow&, lastCol&, myarray As Range

lastrow = Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Range("XX1").End(xlToLeft).Column
Set myarray = Range("A1").Resize(lastrow, lastCol)



Application.CutCopyMode = False

Worksheets("Sheet1").Range("A1", myarray).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 (xlPasteValues)

Привет, я запускал этот простой код для копирования и вставки выбранных ячеек, и я продолжаю получать ошибку времени выполнения 1004: «ошибка приложения или объекта».

Ошибка срабатывает на «Рабочих листах (« Лист1 »). Диапазон (« А1 », myarray). Копия». Я предполагаю, что это связано с переменной «myarray». Я попытался разделить его на листы ("sheet1"). Select и range ("a1", myarray) .select затем selection.copy, но я просто получаю еще одну ошибку 1004: сбой метода 'range' объекта'_global '.

Любая помощь очень ценится. Я в недоумении.

1 Ответ

1 голос
/ 23 марта 2020

Вам нужно указать лист, тогда эти ошибки не возникнут. Как это:

Dim lastrow&, lastCol&, myarray As Range
Dim ws As Worksheet

Set ws = Worksheets("Sheet1")

With ws
   lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
   lastCol = .Range("XX1").End(xlToLeft).Column
   Set myarray = .Range("A1").Resize(lastrow, lastCol)



   Application.CutCopyMode = False

   .Range("A1", myarray).Copy
End With
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...