VBA技巧:在不保护工作簿的情况下防止删除工作表

2022-11-16 11:03:00 浏览数 (1)

标签: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

vba

0 人点赞