Excel VBA Макросы: Ошибка 1004 в строке с Range и Cells.

Автор Екатерина, 21 июля 2016, 02:35

Екатерина

Почему происходит ошибка 1004 в этой строке:?
Sheets("Лист1").Range(Cells(r, 18), Cells(r, 22)).Value = 1

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

Cells, которые находятся внутри Range, относятся не к листу Sheets("Лист1"), а к активному листу.
Активный лист - это лист, который юзер видит на мониторе.
Предположу, что во время работы макроса активный лист это не лист Sheets("Лист1"), что и вызывает ошибку: нужно чтобы в скобках Range был лист, который указан перед Range.

Варианты исправления ошибки.

Вариант 1

Sheets("Лист1").Range(Sheets("Лист1").Cells(r, 18), Sheets("Лист1").Cells(r, 22)).Value = 1

Вариант 2

Обратите внимание, что перед Cells есть точки.

With Sheets("Лист1")
    .Range(.Cells(r, 18), .Cells(r, 22)).Value = 1
End With

Вариант 3

Sheets("Лист1").Cells(r, 18).Resize(, 5).Value = 1