Диапазон (ячеек) VBA использования - PullRequest
0 голосов
/ 18 декабря 2018

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

Но я столкнулся с проблемой, которую, похоже, не понимаю:

Sheets("main").Range(Cells(1, 1), Cells(2, 2)).Copy Sheets("Backup").Range(Cells(1, 1), Cells(2, 2))

Заканчивается с ошибкой: Ошибка времени выполнения 1004, ошибка приложения или объекта.

Хотя нет никаких проблем, пока я пытаюсь это сделать:

Sheets("main").Cells(lastrowMain, lastcolumn).Copy Sheets("Backup").Range("A" + CStr(lastrowBackup + 1))

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

Или, может быть, мой выбор диапазона ячеек неверен, и есть лучший способ?

1 Ответ

0 голосов
/ 18 декабря 2018

Это распространенная проблема, возникающая из-за того, что вы не добавили ссылку на лист к своему Cells.В этом случае будет использоваться активный лист, и если это не main (или Backup), ваш диапазон будет охватывать разные листы, что приведет к ошибке.

Вместо этого полностью определите следующие строки:

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