知識改變命運,科技成就未來。
當Excel工作簿中含有VBA代碼時,用戶在使用時需要啟用宏,否則工作簿的某些功能就會失效。或者是編輯的VBA代碼含有定期刪除指令,為了保證工作簿的安全性,和防止他人禁用宏造成智慧財產權法受到侵害,需要強制用戶啟用宏。看過以下三篇文章的小夥伴也提出同樣的問題。
Excel科幻電影效果,文件倒計時銷毀功能,網友直呼太科幻
Excel工作表打開一次後自動銷毀文件,回收站中都找不到
Excel工作簿自動銷毀功能,使用時間到期後自動刪除文件
經過兩天的深思熟慮終於找到解決問題辦法。思路是通過編輯VBA代碼,打開Excel工作簿後自動檢測宏是否被啟用,如果宏處于禁用狀態,工作簿會自動隱藏關鍵數據所在的工作表,此處的隱藏屬於深度隱藏,無法直接取消隱藏工作表。
步驟一:打開Excel工作簿後,再插入一個新的工作簿Sheet2用來存放關鍵數據,Sheet1作為提示工作簿,主要功能是提示用戶必須強制啟用宏和啟用宏的方法,否則隱藏關鍵數據所在的工作表。
Excel在打開含有宏的工作簿時,會提示用戶是否啟用宏,如果沒有做任何提示,此時就需要用戶自己動手啟用。啟用宏的操作步驟依次是:文件→選項→信任中心→信任中心設置→宏設置→啟用所有宏→確定。
步驟二:接下來就是編輯VBA代碼,打開Visual Basic編輯器後,將以下代碼複製粘貼到ThisWorkbook代碼窗口中,最後對VBAProject進行加密處理,主要是保護VBA代碼不被刪除或更改,以保證整個工作簿的安全性。設置完成後關閉Visual Basic編輯器回到工作簿操作界面。
代碼區域:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet
Sheet1.Visible = True
For Each sh In Me.Worksheets
If UCase(sh.Name) <> "SHEET1" Then sh.Visible = xlSheetVeryHidden
Next sh
Me.Save
End Sub
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Me.Worksheets
If UCase(sh.Name) <> "SHEET1" Then sh.Visible = True
Next sh
Sheet1.Visible = xlSheetVeryHidden
End Sub
步驟三:工作簿的存儲也非常重要,需要將Excel工作簿另存為【*.xls】格式或【*.xlsm】格式,因為【*.xlsx】格式無法識別帶有宏的工作表,保存後宏會自動清除。
需要注意的是,在宏禁用的情況下,默認隱藏的是除Sheet1工作表之外的其他工作表,請勿將重要數據存放在Sheet1工作表之中。當啟用宏後,工作簿會自動隱藏Sheet1工作表。
至此,Microsoft Excel強制用戶啟用宏的操作方法已經介紹完畢。如果對操作過程有些費解,請瀏覽查閱前三篇文章獲取答案,也許會有不一樣的效果。如果感興趣可以結合前三篇文章的內容,製作屬於自己的工作簿,相信您定會讓他人大吃一驚。
動動手指點擊關注和轉發,讓更多的人告別加班的煩惱,每天掌握一些科技小技巧,相信也會為您的工作和生活帶來便捷。