Das Folgende ist so nah wie möglich zu dem, was Sie suchen.
Ich habe ein Formular mit dem Standardnamen UserForm1
erstellt. Ich habe den folgenden Code in ThisWorkbook
aufgenommen.
Wenn der Benutzer auf die Registerkarte "Sheet2" klickt, lädt der Code UserForm1
, maximiert es und zeigt es an. Wenn das Formular beendet wird, wechselt der Code zu "Sheet3".
Dies entspricht nicht genau Ihrer Spezifikation, da Sie "Sheet2" für einen Bruchteil einer Sekunde sehen können, bevor das Formular angezeigt wird. Ich habe versucht, das Formular vorab zu laden. Ich habe versucht, die Bildschirmaktualisierung in der Ereignisroutine SheetDeactivate auszuschalten und nicht wieder einzuschalten, bis ich die SheetActivate-Ereignisroutine beendet habe. Aber nichts, was ich versucht habe, verhindert diesen kurzen Blitz.
Versuchen Sie diesen Code und entscheiden Sie, dass es gut genug ist.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Sheet2" Then
Load UserForm1
With UserForm1
.Width = Application.Width
.Height = Application.Height
.Show
End With
Application.EnableEvents = False ' Surpress SheetActivate event
Worksheets("Sheet3").Activate
Application.EnableEvents = True
End If
End Sub
Wenn Sie Sie sagen Sie den Benutzer nicht, dass die Daten auf dem Blatt zu sehen, meinen Sie die Daten aus dem Formular auf dem Blatt ist? Wenn ja, warum nicht ein Blatt machen, nur um das Formular zu öffnen? –
Wenn Sie nicht möchten, dass der Benutzer sieht, was sich in dem Arbeitsblatt befindet, warum müssen die Benutzer dann auf dieses Arbeitsblatt klicken, um das Formular zu öffnen? Können Sie einen anderen Mechanismus zum Öffnen des Formulars verwenden? Ein Knopf auf einem anderen Blatt, vielleicht? –
Gut kann ich die Daten des Blattes nicht ändern, weil die Zellen im Rest der Anwendung abhängig sind. Da die Leute es gewohnt sind, auf diese Registerkarte zu gehen, ist es für sie schön, auf diese Registerkarte zu klicken und von dort aus zu gehen. Irgendwie eine lange Geschichte ... Gibt es überhaupt etwas, um das Verhalten zu ändern, wenn ein Benutzer auf einen Tab am unteren Rand des Blattes klickt? Anstatt das Blatt zu öffnen, öffnet es das Formular? – thebiglebowski11