Excel提供了多种方式,您可以从一个工作表移动到工作簿中的另一个工作表。如果要禁用在工作表之间移动,由于需要采取多种方法,因此您面临着艰巨的任务。

例如,在工作表之间移动的一种方法是按Ctrl + Page Up或Ctrl + Page Down。要为特定的工作簿禁用这些键,您需要通过以下方式使用OnKey方法:

Private Sub Workbook_Activate()

Application.OnKey "^{PgDn}", ""

Application.OnKey "^{PgUp}", ""

End Sub
Private Sub Workbook_Deactivate()

Application.OnKey "^{PgDn}"

Application.OnKey "^{PgUp}"

End Sub

这两个宏应放在ThisWorkbook对象中。第一个在工作簿激活时运行,并通过在按下时不执行任何操作来禁用Ctrl + Page Up和Ctrl + Page Down。当禁用工作簿时,将运行第二个宏,并重新启用键。

还有许多其他方法可以在工作表之间进行切换,例如手动选择工作表,使用“转到”,使用超链接等。防止工作表之间移动的最简单方法是隐藏不需要访问的工作表。保护工作簿和保护VB项目也将有助于“阻止”用户在工作表之间移动。

如果隐藏了图纸,则无法选择它们,因此您无法移动到它们。转到将不会转到它们,超链接也不会转到它们。

如果希望用户以后能够查看隐藏的工作表,则必须使用自己的控件/按钮创建宏例程以转到那些工作表。此例程将“取消隐藏”您要去的工作表,并隐藏刚剩下的工作表。

根据您的需求,您可以尝试另一种方法。您可以将以下宏添加到ThisWorkbook对象:

Private Sub Workbook_SheetDeactivate(ByVal mySheet As Object)

Application.EnableEvents = False     mySheet.Activate     Application.EnableEvents = True End Sub

每次停用当前工作表时都会执行此宏。

它实质上是“重新激活”剩余的工作表,这意味着永远无法选择其他工作表。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(11210)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: