[分享成果,喜悅和正能量]睿智的人能看透,所以不吵架。豁達(dá)的人不會打架,因?yàn)樗艹ㄩ_心扉。
得道的人曉天意,故不急。厚德的人重謙和,故不噪。明理的人放得下,故不癡。自信的人肯努力,故不誤。重義的人交天下,故不孤。濃情的人淡名利,故不獨(dú)。寧靜的人行深遠(yuǎn),故不折。知足的人??鞓罚什焕?。《VBA代碼解決方案》這套教程是我最早推出的教程,目前已經(jīng)是第二版修訂了。這套教程定位于入門后的提高,在學(xué)習(xí)這套教程過程中,側(cè)重點(diǎn)是要理解及掌握我的“積木編程”思想。要靈活運(yùn)用教程中的實(shí)例像搭積木一下把自己喜歡的代碼擺好。
這套教程共三冊,一百四十七講,內(nèi)容覆蓋較廣,也是初級和中級間的過度教程,改版后的內(nèi)容主要是提供程序源碼文件及代碼修正為32位和64位兼用代碼。今后一段時(shí)間會給大家陸續(xù)推出。今日的內(nèi)容是第21講:抱歉,如果禁用宏,你將無法工作
第二十一講 在EXCEL中,如果禁用VBA將無法繼續(xù)工作
朋友們好,今日我們繼續(xù)講解VBA代碼解決方案的第21講,這講的內(nèi)容中我們會講解在使用VBA開發(fā)的工作簿文件完成后,要求用戶在打開工作薄時(shí)同時(shí)啟用VBA代碼。也就是說我們希望用戶在打開工作簿時(shí)啟用宏,此時(shí)可以使用“禁用宏則關(guān)閉工作簿”的功能外。
還可以隱藏所有有數(shù)據(jù)的工作表,如果用戶在打開工作簿時(shí)禁用宏則只顯示一張空白的工作表,達(dá)到強(qiáng)制啟用宏的效果。
這里會用到應(yīng)用于Worksheets(工作表)對象的Visible屬性。這個(gè)屬性決定對象是否可見。
語法如下:ex
參數(shù)
expression是必需的,該表達(dá)式返回上面的對象之一。
Visible屬性可以設(shè)置為下面的常量之一。
a) xlSheetHidden ,其值為 0,表示隱藏對象,可以通過“格式”→“工作表”→“取消隱藏”菜單使對象重新可見,等同于設(shè)置為False。
b) xlSheetVisible 其值為 -1表示使對象重新可見,等同于設(shè)置為True。
c) xlSheetVeryHidden 其值為2表示隱藏對象,使該對象重新可見的唯一方法是將此屬性設(shè)置為True或xlSheetVisible。
1 利用Visible屬性,使禁用VBA時(shí)工作表無法有效顯示
我們看如下代碼:
Private sh As Worksheet
Private Sub Workbook_BeforeClose(Cancel As Boolean) '第21講 如何做到如果禁用VBA將無法繼續(xù)工作
Sheets("空白").Visible = True
For Each sh In T
If <> "空白" Then
= xlSheetVeryHidden
End If
Next
Ac
End Sub
Private Sub Workbook_Open() '第21講 如何做到如果禁用VBA將無法繼續(xù)工作
For Each sh In T
If <> "空白" Then
= xlSheetVisible
End If
Next
Sheets("空白").Visible = xlSheetVeryHidden
End Sub
代碼截圖
2 代碼的講解及實(shí)際測試效果
代碼講解:
1) 第2行到第10行代碼是工作簿的BeforeClose事件過程,在工作簿關(guān)閉前隱藏除“空白”表以外的所有的工作表。
2) 第3行代碼將“空白”表的Visible屬性設(shè)置為True,使其可見。
3) 第4行到第8行代碼使用For Each...Next語句遍歷工作簿中所有的工作表,將除“空白”表以外的所有工作表的Visible屬性設(shè)置為xlSheetVeryHidden,使之隱藏。
Visible屬性設(shè)置為xlSheetVeryHidden后工作表不能通過“格式”→“工作表”→“取消隱藏”菜單來顯示隱藏的工作表。
4) 第9行代碼使用Save方法保存代碼所在工作簿的更改,在關(guān)閉工作簿時(shí)不顯示消息框。
5) 第10行到第18行代碼是工作簿的Open事件過程,在打開工作簿時(shí)將除“空白”表以外的所有工作表的Visible屬性設(shè)置為xlSheetVisible,取消隱藏。如果打開工作簿時(shí)禁用宏,則工作簿中除了“空白”表以外,其他的工作表還處于深度隱藏的狀態(tài),這樣就達(dá)到強(qiáng)制用戶啟用宏的效果,當(dāng)然這還需要VBA工程保護(hù)的配合。
代碼的運(yùn)行效果,禁用宏后在啟用VBA代碼后的工作表視圖:
今日內(nèi)容回向:
1 如何做到在禁用VBA代碼時(shí),視圖只顯示“空白”頁。
2 xlSheetHidden 的值有幾種?都有什么意義?
3 本節(jié)兩段代碼的意義是否掌握了?
本講內(nèi)容參考程序文件:VBA代碼解決方案修訂(1-48).xlsm
我20多年的VBA實(shí)踐經(jīng)驗(yàn),全部濃縮在下面的各個(gè)教程中:
1.《【禁用宏】抱歉,如果禁用宏,你將無法工作》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《【禁用宏】抱歉,如果禁用宏,你將無法工作》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實(shí),對其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請保留本站內(nèi)容來源地址,http://f99ss.com/gl/2485074.html