Невозможно установить переменную рабочего листа Excel VBA

Я пытаюсь установить переменную исходного листа для переменной целевого рабочего листа в другой книге (DataSource1.xlsx) с целью в конечном итоге использовать ее для чтения целевого рабочего листа и выполнения некоторых вычислений, но это дает мне ошибку индекса вне диапазона.

Это мой код

Sub GenerateReport()

Dim source As Worksheet

Dim path As String    
Set source= Workbooks(ThisWorkbook.path & "\DataSource1.xlsx").Sheets("Sheet1")

'path = ThisWorkbook.path

'Set wb = Workbooks.Open(ThisWorkbook.path & "\DataSource1.xlsx")

Dim one As Integer

one = 10

End Sub

Все файлы помещены в одну папку, и я проверил, нет ли ошибок именования или пути, почему это происходит?

ИЗМЕНИТЬ

Так выглядит мой проект после комментариев GSerg

введите здесь описание изображения


person Computernerd    schedule 06.01.2019    source источник


Ответы (1)


Если книга уже открыта, вам нужно ссылаться на нее по имени без пути:

Set source = Workbooks("DataSource1.xlsx").Sheets("Sheet1")

Если книга еще не открыта, вам нужно сначала открыть ее:

Set source = Workbooks.Open(ThisWorkbook.path & "\DataSource1.xlsx").Sheets("Sheet1")
person GSerg    schedule 06.01.2019
comment
@Computernerd Каким образом? - person GSerg; 06.01.2019
comment
Я получаю ту же ошибку, ошибка индекса вне допустимого диапазона - person Computernerd; 06.01.2019
comment
@Computernerd Вы не можете получить эту ошибку при вызове Workbooks.Open. Это означает, что вы либо пытаетесь сослаться на книгу, которая еще не открыта, либо книга открыта, но в ней нет Sheet1. - person GSerg; 06.01.2019
comment
о, так я должен открыть книгу, прежде чем я смогу на нее ссылаться? - person Computernerd; 06.01.2019
comment
@Computernerd Это то, что я имел в виду под If the workbook is not opened yet, you need to open it first прямо выше. - person GSerg; 06.01.2019