本示例演示了批量加解密文件操作。
Option Explicit
Private Sub ComboBox1_Change()
'增加列表框的选项
ListBox1.AddItem ComboBox1.Text
End Sub
Private Sub CommandButton1_Click()
'保护或者打开工作表
ProtectAndUnProtect
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'定义双击列表框的项目时,删除掉当前项目
ListBox1.RemoveItem ListBox1.ListIndex
End Sub
Private Sub UserForm_Activate()
'定义一个工作表变量
Dim sh As Worksheet
'获得当前工作薄上的工作表的名称
For Each sh In ActiveWorkbook.Sheets
ComboBox1.AddItem sh.Name '定义加载复合框时各Item的内容
Next sh
End Sub
Sub ProtectAndUnProtect()
'定义Spwd来获得密码
Dim Spwd As String, i As Integer
'定义工作表变量sh
Dim sh As Worksheet
On Error GoTo 1 '有错误则提示错误码
If ActiveSheet.ProtectContents Then '判断当前工作表是否处于保护状态
Spwd = InputBox("Password", "UnProtect") '如果是输入解密密码
If Spwd = "" Then Exit Sub '密码为空则直接退出
For i = 0 To ListBox1.ListCount - 1 '循环列表框Item
Sheets(ListBox1.List(i)).Unprotect Spwd '给列表框上有的表格解密
Next i
Else
Spwd = InputBox("Password", "Protect") '输入加密密码
If Spwd = "" Then Exit Sub '密码为空则直接退出
For i = 0 To ListBox1.ListCount - 1 '循环列表框Item
Sheets(ListBox1.List(i)).Protect Spwd '给列表框上有的表格解密
Next i
End If: Exit Sub
1 MsgBox Err.Description, 16 '提示错误码
End Sub