У меня есть следующий код в моем приложении, который генерирует ошибку 1004:
range(cells(1, 103), cells(157, 112)).select
Однако, если я скопирую этот код в непосредственное окно и выполню его, я вижу, что ячейки выбираются.
Если я использую Range("CY1", "DH157").Select
, приложение работает нормально без ошибок.
Что здесь происходит?
Спасибо!
Обновление: Iсоздали простой файл из двух листов со следующим кодом в «чистом виде»:
Private Sub testcode_Click()
Sheets("scratch").Activate
Range(Cells(5, 5), Cells(10, 10)).Select
Sheets("testtab").Activate
Sheets("testtab").Range("A1:E5").Select
Sheets("testtab").Range("B10:C16").Select
Sheets("testtab").Range(Cells(5, 5), Cells(10, 10)).Select
End Sub
Код будет выполняться правильно, пока не выполнится последний оператор.Это приводит к ошибке «1004», по крайней мере, в моей системе
Я нашел аналогичный вопрос 2015 года, на который ответил Рори, и теперь он работает правильно для меня.Очевидно, что вызовы Cells относятся к листу, на котором находится код, даже если альтернативный лист активирован.Правильно работает следующее:
Sheets ("testtab"). Range (ActiveSheet.Cells (5, 5), _ ActiveSheet.Cells (10, 10)). Выберите
Загадка решена!Спасибо Рори!Спасибо всем.