EXCEL工作簿如果禁用宏,將無法工作

2021-01-11 VBA語言專家

大家好,我很早以前開始學習利用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。

分享成果,隨喜正能量

相關焦點

  • Excel怎麼保護自己的勞動成果?強制用戶啟用宏,再加上這一步
    當Excel工作簿中含有VBA代碼時,用戶在使用時需要啟用宏,否則工作簿的某些功能就會失效。或者是編輯的VBA代碼含有定期刪除指令,為了保證工作簿的安全性,和防止他人禁用宏造成智慧財產權法受到侵害,需要強制用戶啟用宏。看過以下三篇文章的小夥伴也提出同樣的問題。
  • EXCEL-VBA(宏)工作薄事件大全
    Activate 事件激活工作簿、工作表、圖表工作表或嵌入式圖表時發生此事件。新建窗口時不發生此事件。切換兩個顯示同一工作簿的窗口時,將發生 WindowActivate 事件,但不發生工作簿的 Activate 事件。示例此示例在工作表被激活時對區域 A1:A10 排序。
  • 如何保存含宏指令(VBA代碼)的Excel工作簿
    通常情況下,在使用Excel處理數據時,如果碰到需要進行較多的重複性操作,可以通過錄製宏命令來,將這些操作指令記錄下來,然後讓Excel傻瓜式的運行這些指令,即可實現化繁為簡,在提高工作效率的同時還能保證質量的穩定,這就是為啥有些人在處理重複性操作時,是那麼的得心應手,而有的人卻是那麼舉步維艱,叫苦連天。
  • EXCEL之VBA(宏)指定快捷鍵及添加到快速訪問欄的方法
    注意的時,如果添加原宏要對所有打開的文檔有效,需要把宏保存到個人宏工作薄。要讓宏可以在其它工作薄運行並完成指定操作,首先需要創建一個人宏工作薄,以EXCEL2007為例,可以通過點擊菜單欄「視圖」》宏》錄製宏,選擇到個人工作薄創建個人宏工作薄。
  • 1天的工作量數秒內完成,Excel宏操作大揭秘
    手動操作時需挨個更改各 個表的格式,調整單元格寬度和高度,添加下劃線等,無論有多少時間都不夠 用,如果使用宏功能,幾秒便可完成。如果僅更改1個或2個表的設計,選擇手動 操作一點點來也沒關係,但如果有10、20個表之多的話,使用「宏」功能更有 效、準確。
  • 你知道excel的宏可以事半功倍提升工作效率嗎
    工作中經常使用excel的同學會發現,如果說每天對對同樣的工作內容,表格的處理方法也是一樣的。有可能你還是會繼續重複「昨天的故事」,一次又一次的重複操作。這樣難免會有些許枯燥,這時候,如果你本身會excel的宏。
  • Word中用宏進行批量替換
    在Word中實現該功能的過程:在E盤下建立「HongTiHuan.xlsx」→在該文件中修改其中一個工作表的名稱為「替換」→在該工作表第一列中輸入被替換的內容,第二列中輸入需要替換為的內容→保存該文件並關閉;2.視圖→宏→查看宏→創建→在空白區域粘貼下面的代碼→保存→關閉VB窗口;
  • 「Excel技巧」Excel批量提取當前工作簿下的所有工作表名稱
    一個工作簿裡有很多工作表,想要提取當前工作簿的所有工作表名稱,你會怎麼操作?過去的我,可能會一個個手動去編輯提取,花了不少時間和精力去完成,工作這麼努力,差點把自己感動哭了。可是,後來才知道,我那是白瞎折騰。
  • Excel辦公,5大常用小技巧,提高工作效率不是夢
    現在在工作表Sheet1中,已經無法再激活指定區域外的任何單元格了,而且,有些命令也被禁用。如用戶可能不能再選擇整行或整列,甚至連全選工作表的操作也會失效。不過,這一方法有兩個局限:一是此方法只適用於一個單獨的連續單元格區域。二是ScrollArea屬性是易失性的。
  • Excel雜談:看我如何通過宏減少工作量之情景分析
    然鵝……首先想到是宏被禁用的問題,看了一眼教務處的電腦,安裝的是WPS2019,也就是這玩意兒。一般家庭用戶用的也是這個版本,然鵝這個版本是沒有宏功能的,WPS的宏在Pro版本中,你可以去我博客下載。所以,問題來了,宏到底是個啥東西?
  • EXCEL小技巧:教你如何一鍵合併多個工作簿
    平時,我們在工作中總會遇到需要把多個具有相同結構的工作簿的工作表合併到一個工作表裡,方便進行數據統計和分析,生成新的報表數據,如下圖1:有人說,我也可以把每個分表裡的工作表一個一個地複製到一個工作表裡合併也可以實現,是的,但是如果工作分表要是多的話,這種原始的手工操作不但工作量大、而且麻煩,更容易出錯,也浪費了EXCEL的強大功能,可惜了啊!
  • Excel表格把數據按類別快速拆分到不同工作表或工作簿
    二.操作步驟:1.Ctrl+A選擇數據→切換到插入選項卡→數據透視表→數據透視表的位置勾選現有工作表→選擇E1單元格→確定→將需求產品拖動到刪選器裡,將需求店鋪拖動到數據透視表的行裡,將需求量拖動到值裡(並點開該欄位右側倒三角將值欄位設置修改為求和)→切換到分析選項卡→點開選項下倒三角→點擊顯示報表篩選頁
  • EXCEL多表合併、拆分,複製粘貼,等於開掛,不信你就試試看
    例如,一個文件夾裡有30個相同表頭格式的工作簿,我們需要把這30個excel表合併後放在同一個文件夾裡面。如圖所示:做法:將同一文件夾下的所有工作簿合併在同一個sheet表中,先在文件夾下新建一個工作簿,打開此表,並右鍵單擊sheet1,找到「查看代碼」,單擊進去。進去之後就看到了宏計算界面。
  • Jupyter Notebooks嵌入Excel並使用Python替代VBA宏
    從Python到Excel的另一種傳輸方式也可以正常工作。 無論你是使用Python加載數據集並將其傳輸到Excel工作簿,還是通過Excel處理數據集並希望將結果返回Excel,從Python複製數據到Excel都很容易。  %xl_set
  • 隨心所欲讓excel做任何事——編寫宏
    【excel是什麼?】用excel表格來做計算,現在可以說是非常普遍了,其功能也是十分強大的。但是在我們實際應用的時候,不免會出現現有功能無法滿足我們的情況,比如下面的例子。在目前excel中則無法實現,幸運的是該產品針對特定需求提供了宏任務來解決【操作步驟】首先我們找到查看宏的地方:【視圖】-> 【宏】->【查看宏】輸入名稱後,點擊【創建】進入代碼界面開始編寫代碼,我們的代碼寫在
  • 如何錄製宏及如何利用已經錄製好的宏
    在我的其他教程中我是不希望學員採用錄製宏的方法來完成我們的代碼的,因為有很多事情你不能用宏記錄器來做,例如,不能使用宏記錄器循環訪問一系列數據;此外,宏記錄器使用的代碼比所需的多得多,這可能會降低進程的速度;而且,錄製宏的工作不利於自己對代碼的理解。但對於初學者,我們還是可以利用錄製宏,來完成我們一些具體的工作。下面我們來講解如何錄製宏。
  • Excel表格的宏操作教程
    諮詢學歷提升請加小編個人微信號:jzs0598 ❸ 長按右側二維碼,關注CAD吧excel  宏操作步驟2:其實,不用怕,我們要用到「宏」來幫助我們。首先,我們要錄製新的宏,簡單而言就是把我們要重複操作的步驟錄製起來哦! 方法是:點擊工具——宏——錄製新的宏。點擊後,你就開始進入宏的錄製了,把你步驟一步步錄起來!
  • 錄製的宏保存在哪裡比較合適?
    如果你經過學習,終於學習了錄製第一個宏,操作成功,保存文件後再次打開,卻發現出問題了。原來直接保存為默認文件格式xlsx格式,將會刪除原有錄製宏產生的代碼。保存的時候應該選擇如下文件格式,啟用宏的文件格式。對應的圖標也變成以下效果。