Excel VBA解讀:保護工作表——Protect方法
在Excel中,我們可以保護工作表,避免用戶對工作表進行不必要的修改。
要想保護工作表,可以單擊「審閱」選項卡中的「保護工作表」按鈕,如下圖所示。
在「保護工作表」對話框中輸入密碼(當然也可以為空,即不設置密碼),進行相應的選取設置後,即對工作表設置了保護。此時,用戶不能隨意在工作表中編輯單元格。
Excel宏錄製器為上述操作錄製的代碼為:
Sub Macro1()
Macro1 Macro
由完美Excel錄製
ActiveSheet.ProtectDrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
可以看出,Excel VBA使用Protect方法保護工作表,雖然在操作中我們為保護工作表設置了密碼,但Excel並沒有為我們錄製設置的密碼項。然而,我們可以方便地使用Protect方法通過代碼為保護工作表設置密碼。
Protect方法
工作表對象的Protect方法用於保護工作表,使之不能夠被修改。Protect方法有很多參數,多達16個,但均為可選參數,我們可以根據需要有選擇地使用這些參數以達到目的,例如,雖然對工作表進行了保護,但仍允許用戶對限定的區域進行修改。
示例1:使用Protect方法保護工作表
下面的代碼保護當前工作表,並設置密碼為「test」。
Sub ProtectActivesheet()
If NotActiveSheet.ProtectContents Then
ActiveSheet.ProtectPassword:="test", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True
End If
End Sub
說明:
參數Password用來設置密碼,區分大小寫。如果忽略該參數,那麼在取消工作表保護時不需要密碼。
參數DrawingObject、Contents、Scenarios分別設置是否保護工作表中的形狀、內容和方案。它們的默認值都是True。
ProtectContents屬性返回一個Boolean值,表明工作表是否已保護。上述代碼運行時,如果工作表已受保護,則不執行任何操作。
Unprotect方法
要想通過代碼修改受保護的工作表,必須先取消工作表保護,才能進行修改。Unprotect方法用於取消工作表保護。
示例2:使用Unprotect方法取消工作表保護
下面的代碼取消對設置了密碼「test」的當前工作表的保護。
Sub UnprotectActivesheet()
IfActiveSheet.ProtectContents Then
ActiveSheet.UnprotectPassword:="test"
End If
End Sub
說明:
Unprotect方法只有一個可選參數Password,用來提供保護工作表時所設置的密碼。
如果保護工作表時沒有設置密碼,可以忽略參數Password。
如果提供的密碼不正確,那麼Excel會彈出一個錯誤提示框,如下圖所示。
示例3:設置與取消工作表保護的通用代碼
下面是Steven M. Hansen編寫的一段代碼,用於設置與取消工作表保護:
說明:
這段代碼可以沿用到自已的代碼中,用於需要在代碼運行過程中設置工作表保護,或者需要修改受保護工作表中的內容而臨時取消工作表保護的情形。
代碼中使用了錯誤處理語句,以及帶參數的函數過程。在後續的文章中會詳細講解這些技術。
歡迎在下面留言,完善本文內容,讓更多的人學到更完美的知識。
TAG:完美Excel |
※解讀目標檢測新範式:Segmentations is All You Need
※NIPS2018最佳論文解讀:Neural Ordinary Differential Equations
※專業解讀 Business Analytics項目
※Excel VBA解讀:讓程序在指定的時間運行——OnTime方法
※Kaggle Carvana 圖像分割比賽冠軍模型 TernausNet 解讀
※iPhone8/8Plus iPhone X 核心資訊全解讀
※蘋果官方解讀:360°看懂Mac Pro 和Pro Display XDR顯示器
※靈感全揭秘-從A到Z解讀VirgilAbloh的LouisVuitton首秀
※英偉達官方解讀:Volta Tensor Core GPU實現AI性能新里程碑
※深度解讀Chaumet Bee my Love愛·巢 & Liens 緣系?一生
※依圖醫療CEO:解讀首登Nature Medicine的中文NLP輔診研究成果
※CVPR 2018論文解讀 | 學習在黑暗中看世界(Learning to See in the Dark)
※網路專家解讀YouTube,Twitter或Reddit的盈利模式
※親子閱讀/英語啟蒙:The Very Lonely Firefly解讀
※基於IR-transformer、IRGAN模型,解讀搜狗語義匹配技術
※全面解讀Liquidity.Network
※解讀葡萄牙人鑽石Portuguese Diamond
※一圖勝千言: 解讀阿里的Deep Image CTR Model
※無線電競最為致命:金士頓 HyperX Cloud Flight 耳機詳細解讀
※ICO白皮書解讀——Basecoin