VBA-Fehler 1004 - Auswahlmethode der Bereichsklasse fehlgeschlagen

Das erste Mal als Poster. Wenn es also Formatierungen oder Richtlinien gibt, die ich nicht beachtet habe, lass es mich bitte wissen, damit ich das Problem beheben kann.

Ich frage also im Grunde den Benutzer nach dem Dateiverzeichnis der Excel-Datei und richte dann einige Variablen ein (ursprünglich als Projektvariablen bei public festgelegt, da diese an anderen Stellen verwendet und geändert wurden). Ich habe auch die Zeilen hinzugefügt, um diese Variablen auf nichts zu setzen (nur für den Fall, ich denke nicht, dass es wichtig sein sollte). Anschließend setze ich diese Variablen auf die Excel-Datei, die Arbeitsmappe und die Arbeitsblätter, auf die ich zugreifen möchte.

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

Also habe ich zwei verschiedene Blattvariablen 'sourceSheets' und 'sourceSheetsSum' erstellt, der Code funktioniert, wenn ich 'sourceSheets' verwende, aber Fehler 1004 tritt auf, wenn ich 'sourceSheetsSum' verwende. Ich habe auch versucht, den Code mit der Variablen 'sourceSheet' vollständig zu entfernen, für den Fall, dass 'sourceSheetSum' aus irgendeinem Grund überschrieben wurde.

Ich bin ziemlich sicher, dass die Excel-Arbeitsmappe und die Excel-Arbeitsblätter vorhanden sind und korrekt aufgerufen werden, da ich einen kurzen Code ausgeführt habe, um alle Arbeitsblätter in der Arbeitsmappe zu durchlaufen und die unten gezeigten Namen auszugeben.

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

Mit der Debug-Ausgabe von

Messungen
Analyse-Zusammenfassung
Analyseeinstellungen

Hat jemand eine Idee, was dieser Fehler bedeuten könnte oder wie ich möglicherweise mehr darüber herausfinden kann, was der Fehler tatsächlich ist?

EDIT: Also habe ich beschlossen, ein wenig in die Liste der Blattnamen aufzunehmen, nicht sicher, ob es überhaupt helfen wird.

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

Das Debug druckt die Analysezusammenfassung, sodass ich weiß, dass das Arbeitsblatt in der Arbeitsmappe vorhanden ist und es keine Probleme mit einem Tippfehler in den Namen geben sollte.
Der Code hat jedoch immer noch den gleichen Fehler in der gleichen Zeile.

deusxmach1na: Ich denke, du wolltest, dass ich mich ändere

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

Set sourceSheet = sourceBook.Sheets("Measurements")

Zu

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

Set sourceSheet = sourceBook.Worksheets("Measurements")

Aber das ändert nichts an dem Fehler, ich erinnere mich, dass ich ihn ähnlich hatte und ihn dann geändert habe, seit ich gelesen habe, dass die Variante wie ein Haken ist, und eigentlich nicht so eindeutig, welche Variante es ist.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage