Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 16 января 2022, 14:24

Название: 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))
Название: Re: Excel VBA Макросы. Run-time error 1004 при использовании Range.
Отправлено: Администратор от 16 января 2022, 14:33
Вот это:
Cells(1, 1), Cells(list2LastRow, list2LastColumn)
относится к активному листу. Активный лист - это лист, который пользователь видит на мониторе.

Правильно так:
Set DataRng = ThisWorkbook.Worksheets(2).Range(ThisWorkbook.Worksheets(2).Cells(1, 1), ThisWorkbook.Worksheets(2).Cells(list2LastRow, list2LastColumn))
Название: Re: Excel VBA Макросы. Run-time error 1004 при использовании Range.
Отправлено: Посетитель от 16 января 2022, 14:46
благодарю