Ich hatte ein Problem, dass ich die Antwort gefunden habe, aber es sagt "Dieser Code muss in einem Klassenmodul gebucht werden und eine Instanz der Klasse muss erstellt werden, bevor es funktioniert". Ich bin sehr vertraut mit "Module", aber noch nie Klassenmodule verwendet, und kann nicht in der Lage sein, herauszufinden, wie man dieses Ding zum Laufen bringen. Unten ist der Code, den ich verwende, und einige meiner zufälligen Versuche, es zum Laufen zu bringen. Es gibt dies (A) und (WorkbookBeforeClose), und in "ThisWorkbook" ein anderes (BeforeClose), es verwirrt mich.ClassModule BeforeClose
Verwendung des Codes; Ich habe eine Benutzerform, die, wenn angezeigt, verbirgt das Fenster/Anwendung basierend darauf, ob andere Arbeitsmappen geöffnet sind, soll dieser Code beim Schließen anderer Bücher beide versuchen zu schließen.
Ihre Hilfe sehr geschätzt wird
Code:
Public WithEvents A As Excel.Application
Private Sub A_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As Boolean)
Dim VIS As Boolean, myAW As Workbook
If Workbooks.Count > 1 Then 'if there is more than one workbook open...
If Windows(ThisWorkbook.Name).Visible = False Then 'and if Client is invisible...
If ActiveWorkbook.Name = ThisWorkbook.Name Then 'and if the workbook being closed is the Client.
Windows(ThisWorkbook.Name).Visible = True
Else 'more than one wb open, Client is invisible, and the workbook being closed is NOT the Client.
Set myAW = ActiveWorkbook
Cancel = True
Windows(ThisWorkbook.Name).Visible = True
Application.EnableEvents = False
myAW.Close
Application.EnableEvents = True
If ServiceEntry.ExcelB.Tag = "False" Then 'a tag on the button on the UserForm to store whether the workbook should be hidden or not
If Workbooks.Count > 1 Then
Windows(ThisWorkbook.Name).Visible = False
Else
ThisWorkbook.Application.Visible = False
End If
End If
Exit Sub
End If
ElseIf ActiveWorkbook.Name <> ThisWorkbook.Name Then
'more than one workbook open and the Client is visible and the workbook being closed is NOT the Client
Exit Sub
End If
End If
End Sub
Bitte bearbeiten Sie Ihre Frage, um den tatsächlichen Code einzufügen. Die Verwendung von Code dient nicht dem gewünschten Zweck. Diese Community soll Ihnen helfen, Probleme bei der Ausführung von Code zu überwinden. Sie müssen also angeben, welches Problem bei der Ausführung des Codes aufgetreten ist. – skkakkar