當前位置:
首頁 > 最新 > Excel VBA解讀:保護工作表——Protect方法

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編寫的一段代碼,用於設置與取消工作表保護:

說明

這段代碼可以沿用到自已的代碼中,用於需要在代碼運行過程中設置工作表保護,或者需要修改受保護工作表中的內容而臨時取消工作表保護的情形。

代碼中使用了錯誤處理語句,以及帶參數的函數過程。在後續的文章中會詳細講解這些技術。

歡迎在下面留言,完善本文內容,讓更多的人學到更完美的知識。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 完美Excel 的精彩文章:

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