使一个表单像一个button

我希望工作表Administrator像一个button,但我不想去实际工作表。

它应该打开一个用户窗体,并保持活动工作表,如果点击Administrator

在这里输入图像说明

您可以创build一个公共variablesCurrentSheet ,将其初始化为Workbook_Open事件中的ActiveSheet ,然后在工作簿的SheetActivate事件中更新CurrentSheet的值或切换回前一个当前工作表并显示用户表单。 类似于(在Workbook代码表中):

 Public CurrentSheet As Worksheet Private Sub Workbook_Open() Set CurrentSheet = ActiveSheet End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object) If Sh.Name = "Administrator" Then CurrentSheet.Activate UserForm1.Show Else Set CurrentSheet = Sh End If End Sub 

在编辑:为了安全,你也可以添加下面的代码。 如果在Workbook_Open事件之后导致项目重置,则会添加一层保护。 在原始代码中,当我激活pipe理员之前有意重置项目时,我能够产生崩溃。

 Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Set CurrentSheet = Sh End Sub 

这可能会使Workbook_Open的代码变得多余,但是我个人会保留这个代码,因为我不喜欢使用未初始化的全局variables的想法,即使在我使用它们之前它们将被初始化。 另外 – 如果工作簿pipe理员打开(这可能是一些错误条件),这将保证CurrentSheet有一个值。