Set oWS = oWB.Worksheets(Range("link").Parent.Name
03.07.2008 22:50:00
Peter
https://www.herber.de/bbs/user/53575.xls
Guten Abend
Ich habe vor einigen Tagen die Frage im Forum platziert, weshalb ein bestimmter Code nicht ausgeführt werden kann. Da ich keine weiterführende Antwort erhalten habe, habe ich die entsprechende Datei ziemlich verkleinert, um sie hochladen zu können.
Beim Deaktivieren des Workbooks will ich die Berechnung auf einer bestimmten Tabelle (hier mit Namen "Jahresrechnung") ausschalten. Die Tabellenbezeichnung kann ändern - enthält jedoch immer einen mit "Link" benannten Bereich.
Deshalb wollte ich beim untenstehenden Sub Workbook_Deactivate den Namen via Range("link").Parent.Name ermitteln.
Wenn ich nun den Workbook verlasse, indem ich einen neuen Workook erstelle, erhalte ich den Laufzeitfehler '1004': Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen, beim Debuggen wird die Zeile Set oWS = oWB.Worksheets(Range("link").Parent.Name) angesprungen. Wenn ich anstelle dessen mit 'Set oWS = oWB.Worksheets("Jahresrechnung") arbeite, funktioniert der Code tadellos.
Weshalb funktioniert die erste Variante mit Ermittlung des Tabellennamens über den Range "Link" nicht?
Danke für eine Antwort.
Gruss, Peter
Private Sub Workbook_Deactivate()
Dim oWB As Workbook
Dim oWS As Worksheet
Set oWB = ThisWorkbook
Set oWS = oWB.Worksheets(Range("link").Parent.Name)
'Set oWS = oWB.Worksheets("Jahresrechnung")
'Berechnung ausschalten
Application.StatusBar = ""
oWS.EnableCalculation = False
Menü_Löschen
End Sub