目录
示例
当需要保护某个工作表不被修改时,一般可以将其保护。在VBA中,是否可以设置一个工作表名称的列表(如图所示),当工作表属于该列表中时则不允许改变。该如何实现?
实现代码
编写一个备份工作表的程序,将当前活动工作表备份,然后在工作簿的Workbook_SheetChange事件中查找其Sh参数所表示的工作表是否属于保护工作表的列表,若属于该列表,则删除当前工作表,并使用备份工作表重命名之前的工作表。
插入模块
Option Explicit
Sub BackupSht()
Dim shtOld As Worksheet
Dim shtNew As Worksheet
'禁止屏幕刷新
Application.EnableEvents = False
Application.DisplayAlerts = False
'记录当前活动工作表
Set shtOld = ActiveSheet
'若当前活动工作表不是保护工作表时
If Not shtOld Is Sheet1 Then
On Error Resume Next
'显示备份工作表并删除
ThisWorkbook.Worksheets("tmp&