使表格像按钮一样

时间:2015-10-21 18:13:06

标签: excel vba excel-vba

我希望工作表Administrator像按钮一样,但我不想去实际的工作表。

如果点击Administrator,它应该打开一个UserForm并保持在活动工作表上。

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以创建公共变量CurrentSheet,在Workbook_Open事件中将其初始化为ActiveSheet,然后在工作簿的SheetActivate事件中更新{{1}的值或者切换回上一个当前工作表并显示用户表单。类似于(在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 事件后重置,则会增加一层保护。在原始代码中,当我在激活Administrator之前故意重置项目时,我能够生成崩溃。

Workbook_Open

这可能会使Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Set CurrentSheet = Sh End Sub 中的代码变得多余,但我个人会保留它,因为我不喜欢使用未初始化的全局变量,即使它们在我使用它们之前会被初始化。另外 - 如果工作簿在管理员中打开(可能是某些错误情况),这将保证Workbook_Open具有值。