工作簿保護(hù)
注意:工作簿結(jié)構(gòu)和窗口的保護(hù)可應(yīng)用于整個(gè)工作簿。
鎖定工作簿的結(jié)構(gòu),以禁止用戶(hù)添加或刪除工作表,或顯示隱藏的工作表。
鎖定工作簿的窗口,以禁止用戶(hù)更改工作表窗口的大小或位置。
我們手動(dòng)操作Excel 如下圖所示
VBA代碼寫(xiě)法如下:
Sub 密碼保護(hù)工作簿()
'該VBA代碼只鎖定工作簿結(jié)構(gòu)
ThisWorkbook.Protect Password:='123456', Structure:=True, Windows:=False
End Sub
Sub 撤銷(xiāo)密碼保護(hù)工作簿()
ThisWorkbook.Unprotect Password:='123456'
End Sub
保護(hù)工作表
默認(rèn)情況下,保護(hù)工作表時(shí),該工作表中的所有單元格都會(huì)被鎖定,用戶(hù)不能對(duì)鎖定的單元格進(jìn)行任何更改。例如,用戶(hù)不能在鎖定的單元格中插入、修改、刪除數(shù)據(jù)或者設(shè)置數(shù)據(jù)格式。
我們手動(dòng)操作Excel 如下圖所示
那用VBA代碼表示的話(huà),老師推薦的代碼如下:
Sub 密碼保護(hù)所有工作表()
'運(yùn)行代碼后,當(dāng)前工作簿中的所有工作表都將不允許編輯,除非撤銷(xiāo)工作表保護(hù)
'On Error Resume Next
Dim ws As Worksheet, Mima As String
Mima = InputBox('請(qǐng)輸入您的密碼' & vbCrLf & '(不輸入表明無(wú)密碼)' & vbCrLf & vbCrLf & '確保您沒(méi)有忘記密碼!', '輸入密碼')
For Each ws In ThisWorkbook.Worksheets
ws.Protect (Mima)
Next ws
End Sub
注意:此代碼保護(hù)工作表時(shí),只是默認(rèn)的保護(hù)形式, 保護(hù)的時(shí)候允許用戶(hù)操作權(quán)限還可以做多樣的變動(dòng),如允許插入行,插入列,格式化數(shù)據(jù)等等等等。 同學(xué)們可以自己錄制個(gè)宏查看下代碼,我相信能寫(xiě)代碼的都有一定的英語(yǔ)水平,宏錄制生成的代碼,一般都能看懂。 老師錄制的宏經(jīng)改變格式后如下:
Sub 宏1()
ActiveSheet.Protect _
DrawingObjects:=False, _
Contents:=True, Scenarios:=False, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=True, _
AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=True, _
AllowDeletingRows:=True, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True
End Sub
Sub 解除密碼保護(hù)所有工作表()
'運(yùn)行代碼后,解除工作簿各工作表的保護(hù)
On Error Resume Next
Dim ws As Worksheet
Dim Mima As String
Mima = InputBox('請(qǐng)輸入您的密碼' & vbCrLf & '(不輸入表示無(wú)密碼)', '輸入密碼')
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect (Mima)
Next ws
End Sub
聯(lián)系客服