标签:VBA
下面介绍一个使用少量VBA代码实现的简单实用的小技巧。
通常情况下,我们执行“保护工作簿”命令后,此时删除工作表的命令变成灰色,用户就不能轻易地删除工作表了。然而,这样也不能进行插入、移动或复制工作表的操作了。
如果想要在不保护工作簿的情况下防止用户删除工作表,而且允许用户插入工作表并对其进行重命名,也允许用户移动或复制工作表,有没有什么好的方法实现?可以使用下面的VBA代码,很简单,却很实用。
在工作簿的ThisWorkbook模块中粘贴或输入下面的代码:
代码语言:javascript复制Option Explicit
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
'保护工作簿,没有密码
ThisWorkbook.Protect , True
'自动运行指定过程
Application.OnTime Now, "ThisWorkbook.RemoveProtection"
End Sub
Sub RemoveProtection()
'撤销保护工作簿
ThisWorkbook.Unprotect
End Sub
此时,用户再要删除该工作簿中的工作表,就会弹出“工作簿有保护,不能更改。”的警告信息(如下图1所示),但用户仍可以在该工作簿中进行添加工作表、移动或复制工作表、对工作表重命名等操作。
图1