大家好,我很早以前開始學習利用VBA,至今已有20多年了。開發過大小不同的VBA程序程序已經數不清了。我的平臺,以傳遞我多年實際經驗為宗旨,授人以漁,交給大家真正的VBA知識。如果大家對VBA感興趣,認為VBA可以給自己的實際工作帶來切實的幫助,最好系統學習我的教程,成為我的學員,汲取我的經驗。由於本人年齡大了,而且學員眾多,目前只能做到滿足對學員答疑,輔導,對非學員朋友只能看我自己的時間是否允許,還望非學員朋友見諒。
今日推出常用「積木」過程案例分享第322期,內容是:如何做到如果禁用VBA將無法繼續工作。VBA是利用Office實現個人小型辦公自動化的有效手段(工具)。這是我的對VBA的定義,我推出的專輯就是我多年實際利用VBA的經驗記錄,都來源於我多年的實踐經驗。目前我已經將所有代碼修正為適合64位和32位兩種系統,大家要把這些代碼塊作為一塊塊的積木對待,平時要多積累,建立自己的「積木庫」,用時拿來可以修正、組合。這就是我的「積木編程」的思想。這些講解就是我推出的「積木」方案,希望大家加以利用。最近代碼多是出自我的第一套教程」VBA代碼解決方案」。這些是非常實用的問題解決方案。
========================= ① =========================
Private sh As Worksheet
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("空白").Visible = True
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "空白" Then
sh.Visible = xlSheetVeryHidden
End If
Next
ActiveWorkbook.Save
End Sub
Private Sub Workbook_Open()
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "空白" Then
sh.Visible = xlSheetVisible
End If
Next
Sheets("空白").Visible = xlSheetVeryHidden
End Sub
=========================②========================
代碼解讀:
1) 第2行到第10行代碼是工作簿的BeforeClose事件過程,在工作簿關閉前隱藏除「空白」表以外的所有的工作表。
2) 第3行代碼將「空白」表的Visible屬性設置為True,使其可見。
3) 第4行到第8行代碼使用For Each...Next語句遍歷工作簿中所有的工作表,將除「空白」表以外的所有工作表的Visible屬性設置為xlSheetVeryHidden,使之隱藏。
Visible屬性設置為xlSheetVeryHidden後工作表不能通過「格式」→「工作表」→「取消隱藏」菜單來顯示隱藏的工作表。
4) 第9行代碼使用Save方法保存代碼所在工作簿的更改,在關閉工作簿時不顯示消息框。
5) 第10行到第18行代碼是工作簿的Open事件過程,在打開工作簿時將除「空白」表以外的所有工作表的Visible屬性設置為xlSheetVisible,取消隱藏。如果打開工作簿時禁用宏,則工作簿中除了「空白」表以外,其他的工作表還處於深度隱藏的狀態,這樣就達到強制用戶啟用宏的效果,當然這還需要VBA工程保護的配合。
各套教程的介紹:
第1套:VBA代碼解決方案
第2套:VBA資料庫解決方案
第3套:VBA數組與字典解決方案
第4套:VBA代碼解決方案之視頻
第5套:VBA中類的解讀和利用
第6套:VBA信息獲取與處理
上述教程的學習順序:1→3→2→6→5或者4→3→2→6→5。
分享成果,隨喜正能量