Во-первых, я настоятельно рекомендую сделать явное объявление переменных в вашем коде обязательным. Перейдите к Инструменты - Параметры , в вкладке Редактор отметьте "Требуется объявление переменной" или введите Option Explicit
в первой строке всех ваших сценариев.
Во-вторых, я думаю, что в вашем коде есть небольшая опечатка, она должна быть Sheets.("sheet")
.
Чтобы ответить на ваш вопрос, с помощью range = Sheets("sheet").Range("A1")
вы присваиваете переменную-значение, а не объект. Поэтому переменная по умолчанию объекта диапазона присваивается неявно, что составляет value
. Чтобы назначить объект, используйте ключевое слово Set
. Мой полный пример кода выглядит так:
Option Explicit
Public Sub Test()
Dim RangeObject As range
Set RangeObject = Sheets("Sheet1").range("A1")
RangeObject.Value = "MyTestString"
End Sub
Это должно поместить текст «MyTestString» в ячейку A1.
Редактировать: Если вы используете именованные диапазоны, попробуйте RangeObject.Value2
вместо RangeObject.Value
. Именованные диапазоны не имеют свойства Value
.