Ошибка VBA 1004 - не удалось выбрать метод класса диапазона

Первый постер, так что если есть какое-либо форматирование или рекомендации, которых я не придерживался, пожалуйста, дайте мне знать, чтобы я мог это исправить.

Поэтому я в основном спрашиваю пользователя о каталоге файлов в файле Excel, а затем устанавливаю некоторые переменные (изначально они были установлены как public как переменные проекта, поскольку они использовались и изменялись в других местах). Я также добавил строки, чтобы установить эти переменные в ноль (на всякий случай, я не думаю, что это должно иметь значение). Затем я устанавливаю эти переменные в файл Excel, рабочую книгу и листы, к которым я хочу получить доступ.

Dim filepath as String
filePath = CStr(fileDialog)              'ask file dir, set to string
Dim sourceXL As Variant                  'these three were orig project variables
Dim sourceBook As Variant
Dim sourceSheet As Variant
Dim sourceSheetSum As Variant

Set sourceXL = Nothing                    'set to nothing in case...?
Set sourceBook = Nothing
Set sourceSheet = Nothing
Set sourceSheetSum = Nothing

Set sourceXL = Excel.Application          'set to the paths needed
Set sourceBook = sourceXL.Workbooks.Open(filePath)
Set sourceSheet = sourceBook.Sheets("Measurements")
Set sourceSheetSum = sourceBook.Sheets("Analysis Summary")

Dim measName As Variant                    'create variable to access later
Dim partName As Variant

sourceSheetSum.Range("C3").Select           'THIS IS THE PROBLEM LINE

measName = sourceSheetSum.Range(Selection, Selection.End(xlDown)).Value
sourceSheetSum.Range("D3").Select
partName = sourceSheetSum.Range(Selection, Selection.End(xlDown)).Value

Таким образом, я создал две разные переменные листа: «sourceSheets». и «sourceSheetsSum», код работает, если я использую «sourceSheets», но ошибка 1004 возникает, если я использую «sourceSheetsSum». Я также пробовал код с переменной «aS; sourceSheet» ». полностью удален, в случае, если это переопределяет «sourceSheetSum»; по какой-то причине.

Я вполне уверен, что книга и листы Excel существуют и правильно называются, так как я быстро выполнил код, чтобы просмотреть все листы в книге и вывести имена, как показано ниже.

For j = 1 To sourceBook.Sheets.Count
Debug.Print (Sheets(j).name)
Next j

С выходом отладки

Measurements
Analysis Summary
Analysis Settings

Итак, есть ли у кого-нибудь идеи, что может означать эта ошибка, или как я могу узнать больше о том, что на самом деле является ошибка?

РЕДАКТИРОВАТЬ: Поэтому я решил немного добавить к списку имен листов, не уверен, поможет ли это вообще.

For j = 1 To sourceBook.Sheets.Count
    listSheet(j) = Sheets(j).name
Next j    
Debug.Print (listSheet(2))    
Set sourceSheetSum = sourceBook.Sheets(listSheet(2))

Отладка печатает сводку анализа, так что я знаю, что лист существует в рабочей книге, и не должно быть никаких проблем с «опечаткой». в именах.
Код все еще имеет ту же ошибку в той же строке, хотя.

deusxmach1na: я думаю, ты хотел, чтобы я изменился

Dim sourceXL As Variant                  
Dim sourceBook As Variant
Dim sourceSheet As Variant
Dim sourceSheetSum As Variant

Set sourceSheet = sourceBook.Sheets("Measurements")

к

Dim sourceXL As Excel.Application
Dim sourceBook As Excel.Workbook
Dim sourceSheet As Worksheet
Dim sourceSheetSum As Worksheet

Set sourceSheet = sourceBook.Worksheets("Measurements")

Но это не меняет ошибку, я помню, что она была похожа на эту, а затем изменила ее, так как я прочитал, что этот вариант похож на ловушку, а не на то, что это за вариант.

Ответы на вопрос(4)

Ваш ответ на вопрос