Excel VBA Макросы. Run-time error 1004 при использовании Range.

Автор Посетитель, 16 января 2022, 14:24

Посетитель

Не могу понять, почему при запуске макроса с Лист1 выходит ошибка "Run-time error 1004", а при запуске с Лист2 все нормально работает.

Вроде не использую методов, которые работают только на активном листе, но как-будто метод Cells работает только на активном листе, потому что при наводке на нее он отображает значение ячейки (1,1) активного листа, а не листа 2?

Ошибка в строке:
Set DataRng = ThisWorkbook.Worksheets(2).Range(Cells(1, 1), Cells(list2LastRow, list2LastColumn))

Администратор

Вот это:
Cells(1, 1), Cells(list2LastRow, list2LastColumn)
относится к активному листу. Активный лист - это лист, который пользователь видит на мониторе.

Правильно так:
Set DataRng = ThisWorkbook.Worksheets(2).Range(ThisWorkbook.Worksheets(2).Cells(1, 1), ThisWorkbook.Worksheets(2).Cells(list2LastRow, list2LastColumn))