Ich bekomme den Fehler 'Index außerhalb des Bereichs', wenn ich den folgenden Code ausführen; Debug verweist mich auf die letzte Zeile:Laufzeitfehler '9' VBA
Dim SrcBook As Workbook
Dim TrgBook As Workbook
Dim SrcSheet As Worksheet
Dim TrgSheet As Worksheet
Dim Sheet_Name As String
Workbooks.Open (CalendarFile)
Sheet_Name = MonthName(Month(SrcSheet.Cells(SrcRow, "D").Value), False)
MsgBox ("Sheet_Name Value is: " & Sheet_Name)
Set TrgSheet = Workbooks(CalendarFile).Worksheets(Sheet_Name)
Ich habe wiederholt bestätigt, dass CalendarFile ein gültiger Dateiname ist (ich den vollständigen Pfad Dateinamen verwenden). Blattname ist auch der gültige Name eines Arbeitsblatts in dieser Arbeitsmappe. Ich erhalte einen ähnlichen Fehler, wenn ich versuche, über numerische Indexierung auf die Arbeitsblätter zuzugreifen [z. B. Arbeitsmappen (Kalenderdatei) .Arbeitsblätter (11) und Arbeitsmappen (Kalenderdatei) .Arbeitsblätter (November)]. Der MsgBox-Aufruf überprüft, dass ich der WorkSheets() -Methode den richtigen Blattnamen füttere.
Zuletzt ist ScrRow richtig definiert - ich kann diesen Code verwenden, um Zielarbeitsblätter im selben WorkBook zu manipulieren, wie das Makro in Spielzeug-/Testanwendungen aufgerufen wird, aber aus irgendeinem Grund schlägt es fehl, wenn ich versuche zu manipulieren Zielarbeitsblätter in anderen (offenen) WorkBooks.
Jede Hilfe würde sehr geschätzt werden! Danke!
Sheet_Name sollte 'Range' sein und keine Zeichenfolge. – Niclas
@Niclas warum sollte es eine Range sein? MonthName gibt eine Zeichenfolge zurück. – Sorceri