Невозможно установить переменную диапазона в VBA - PullRequest
0 голосов
/ 20 марта 2019

Я новичок в VBA и пытаюсь выучить переменные. У меня есть простой кусок кода, который должен установить переменную в диапазоне:

Sub Test()
    Dim DataRange As Range
    DataRange = Workbooks("Rooms.csv").Sheets(1).Range("A3", "AK17068")
End Sub

Когда я бегу, я получаю Run-time error '91': Object variable or With block variable not set, что ... разве это не то, что я делал с оператором Dim? К чему это относится?

Я видел в документах MS , что в некоторых случаях (я не совсем понимаю, когда) я должен использовать Option Strict On, но когда я пытаюсь использовать это, я получаю синтаксическую ошибку (Expected: Base or Compare or Explicit or Private ). Я думаю, что я в корне неправильно понимаю, как это должно работать (я занимаюсь разработкой C ++)

Ответы [ 3 ]

7 голосов
/ 20 марта 2019

Здесь:

Sub Test()
    Dim DataRange As Range
    Set DataRange = Workbooks("Rooms.csv").Sheets(1).Range("A3", "AK17068")
End Sub

Object Переменные установлены с Set

4 голосов
/ 20 марта 2019

Вам необходимо установить диапазон данных

Set DataRange = Workbooks("Rooms.csv").Sheets(1).Range("A3", "AK17068")

1 голос
/ 20 марта 2019

Использование С оператором со ссылкой на рабочую книгу и рабочую таблицу мы получаем преимущество в том, что не повторяем имена рабочих книг и рабочих таблиц, если вы планируете установить больше диапазонов.Смотрите ниже:

Option Explicit

Sub Test()

    Dim DataRange As Range, DataRange2 As Range

    With Workbooks("Rooms.csv").Worksheets("Sheet1") '<- Using *With Statement* referring to the workbook & worksheet
        Set DataRange = .Range("A3", "AK17068")
        Set DataRange2 = .Range("A1") '<- For example purpoces
    End With

End Sub 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...