使一个表单像一个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
有一个值。