Я знаю, что это глупый вопрос, но я нахожусь в конце, пытаясь понять это.Метод диапазона в Excel VBA
Этот небольшой фрагмент кода вызывает ошибку времени выполнения '1004': метод 'Range' объекта '_Worksheet' не удался. Но только тогда, когда Sheet3 не является активным листом. Он делает то, что ожидается, когда Sheet3 активен.
With Sheet3.Range(Cells(1, 1), Cells(nrows1, ncols1))
.Clear
.Value = SCDevNeeds1
End With
Кроме того, если изменить ссылку на имя вкладки листа, я все еще получаю ошибку во время выполнения, но на этот раз это ошибка приложения или объекта определены. Эта ТАКЖЕ случается только тогда, когда лист не активен:
With Sheets("newest").Range(Cells(1, 1), Cells(nrows1, ncols1))
.Clear
.Value = SCDevNeeds1
End With
Что мне не хватает?
Какие значения ** nrows1, ncols1 ** и ** ** SCDevNeeds1, когда линии выполнены ?? –
Ячейки() всегда ссылаются на активный лист, если вы не имеете права ссылаться на конкретный лист. Ошибки вашего кода, потому что Range ссылается на sheet3, но Cells() не работают, если только файл3 не активен. –
В этом случае да, но не всегда, зависит от того, где находится код, что делает его еще более подверженным ошибкам. (см. мой ответ ниже) – KekuSemau