首页
/
每日頭條
/
職場
/
excel 禁止修改
excel 禁止修改
更新时间:2025-08-10 06:35:08

excel 禁止修改(禁止修改Excel工作表名稱)1

職場中經常需要将做好的Excel表格/模闆發給他人或者存放在公共路徑上共享使用,此時需要禁止别人更改已經設定好的工作表名稱。或者某些工作簿中有公式使用了對某些工作表的外部引用,如果工作表名稱發生變化,那麼這些外部引用會失效。又或是其它VBA程序或者其它程序使用表名稱定位工作表,那麼工作表名稱的改變會導緻程序無法執行!

那麼如何禁止用戶更改工作表名稱呢?

假設以下案例:

禁止用戶修改宏工作簿中名稱為“生産計劃表”,“銷售計劃表”和“财務計劃表”的表名稱。

excel 禁止修改(禁止修改Excel工作表名稱)2

本篇中《神奇的VBA》将提供四種思路和相應的VBA代碼範例。

思路1: 保護工作簿結構

如果不采用VBA編程,最常用且有效的方法就是保護工作簿結構。

PrivateSub Workbook_Open() ActiveWorkbook.Unprotect ActiveWorkbook.Protect Structure:=True,Windows:=False End Sub

該方法簡單常用,保護工作簿結構,禁止修改修改“生産計劃表”,“銷售計劃表”和“财務計劃表”的表名時也禁止對其它工作表表名稱進行修改,同時表結構無法更改,表順序,删除,隐藏等功能也無法執行。

注意:對Excel不是太熟悉的用戶千萬不要将保護工作簿結構和工作表保護搞混。

思路2:在工作簿模塊中,鼠标右擊工作表标簽時,禁止彈出菜單,進而無法手動更改工作表名稱。

PrivateSub Workbook_Activate() Application.CommandBars("Ply").Enabled = False'執行屏蔽右鍵菜單 End Sub PrivateSub Workbook_Deactivate() Application.CommandBars("Ply").Enabled = True '解除屏蔽右鍵菜單 End Sub

該方法簡單粗暴,區别主要在于右鍵點擊标簽時是否會彈出菜單。既然無法彈出菜單,那就無法手動修改工作名稱。既然無法彈出菜單,那麼也就是無法使用菜單中的所有自動功能,也阻止了用戶執行如修改工作表标簽顔色等操作的念想。

思路3:在工作表模塊中,采用工作表Worksheet_Deactivate和Worksheet_SelectionChange事件恢複用戶對工作表名稱的修改并彈出警示框。

采用兩種不同事件的依據是日常手動修改工作表名稱通常有兩種常見的模式:

模式1:鼠标右鍵單擊工作表标簽修改表名後,點擊任意單元格完成名稱修改。

模式2:鼠标右鍵單擊工作表标簽修改表名後,點擊其它工作表标簽完成修改。

鑒于這兩種模式,同時采用Worksheet_SelectionChange工作表選區改變事件和Worksheet_Deactivate工作表解除激活事件将分别根據兩種操作模式觸發相應的事件。

Private Sub Worksheet_Deactivate() If Me.Name <> "生産計劃表" Then MsgBox "禁止修改工作表" Me.Name = "生産計劃表" End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Me.Name <> "生産計劃表" Then MsgBox "禁止修改工作表" Me.Name = "生産計劃表" End If End Sub

excel 禁止修改(禁止修改Excel工作表名稱)3

該方法運行效果很好, 不過有心的同學們會發現,如果一個工作簿中30個表要對其中20個工作表名稱采用思路3的代碼方法,很顯然有點麻煩。如果集中對指定名稱的工作表執行禁止修改表名的操作呢?《神奇的VBA》介紹第4種思路。

思路4:在工作簿模塊中,綜合運用隐藏的Application事件, 字典以及工作表的代碼名稱(CodeName)。

Public WithEvents app As Application Dim dic Private Sub app_SheetDeactivate(ByVal Sh As Object) If dic.exists(Sh.CodeName) = False Then Exit Sub If dic(Sh.CodeName) <> Sh.Name Then MsgBox "你無權修改工作表名稱!" Sh.Name = dic(Sh.CodeName) End If End Sub Private Sub app_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If dic.exists(ActiveSheet.CodeName) = False Then Exit Sub If dic(ActiveSheet.CodeName) <> ActiveSheet.Name Then MsgBox "你無權修改工作表名稱!" ActiveSheet.Name = dic(ActiveSheet.CodeName) End If End Sub Private Sub Workbook_Open() dic.Add "Sheet1", "Sheet1" dic.Add "Sheet2", "Sheet2" dic.Add "Sheet3", "Sheet3" Set app = Application End Sub

通過運行驗證該方法很好地滿足了本篇主旨的功能需求。此代碼通過在工作簿模塊編輯窗口頂層放置Public WithEvents app As Application語句中調出Application事件列表,使得我們可以像添加工作簿工作表事件一樣手動選擇添加内置的應用程序級事件。

excel 禁止修改(禁止修改Excel工作表名稱)4

通過應用程序級别的工作表選區改變事件和工作表解除激活事件,我們可以集中監控所有表。字典在工作簿打開時記載要禁止修改名稱的工作表名稱和代碼名稱(CodeName),工作表的代碼名稱為鍵,具有唯一性,工作表名稱為值,用戶可以随便修改。在上述事件中通過判斷和對比觸發事件時的表名稱最終實現本篇的功能!

今天的分享就到這裡,本篇中介紹的思路抛磚引玉,如果您有更多更好的思路歡迎分享!

歡迎轉發收藏

更多Excel VBA編程知識,請查閱職場高效達人必備的參考和學習工具《神奇的VBA》編程參考學習插件,内置嵌入Excel Ribbon界面,打開任意Excel工作簿就能随時查閱和學習Excel VBA編程知識的賦能工具。

excel 禁止修改(禁止修改Excel工作表名稱)5

excel 禁止修改(禁止修改Excel工作表名稱)6

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
空調加個雪種要200多(請同學給空調加雪種)
空調加個雪種要200多(請同學給空調加雪種)
                                ,
2025-08-10
毫米波雷達是怎麼做出來的(什麼是毫米波雷達)
毫米波雷達是怎麼做出來的(什麼是毫米波雷達)
     圖片來源于網絡   目前,毫米波雷達制導技術已大量應用于各類導彈以及末制導炮彈、末制導迫擊炮彈和末敏子母彈等武器系統上,美國陸軍用于反導的愛國者PAC-3導彈,就采用了毫米波導引頭,針對彈道導彈和巡航導彈的攔截任務。      圖片來源于網絡   首先讓我們了解什麼是毫米波?所謂的毫米波是無線電波中的一段,我們把波長為1~10毫米的電磁波稱毫米波,...
2025-08-10
在郵輪上幹什麼工作好(在郵輪上工作是一種什麼樣的體驗)
在郵輪上幹什麼工作好(在郵輪上工作是一種什麼樣的體驗)
  今天是正月十一,也是立春。   立春作為“二十四節氣”之一,與立夏、立秋、立冬一樣,反映着一年四季的更替。   立春,意味着萬物閉藏的冬季已過去,開始進入風和日暖、萬物生長的春季。   雖說立春,但是因為正月十五還未到來,依舊還有些許年味。   今天我們趁着年味還在,趕緊看看在郵輪上是怎麼過新年的吧!   畢竟距離下一次郵輪新年盛宴還有一整年的時間......
2025-08-10
獵場胡歌背後的人(在獵場裡與胡歌對話的老闆來頭不小)
獵場胡歌背後的人(在獵場裡與胡歌對話的老闆來頭不小)
  最近很火的電視劇《獵場》由胡歌主演,講的是胡歌飾演的鄭秋冬職場颠沛、商海沉浮、十年蝶變,成為專業獵頭的成長故事。而這裡面有個獵聘網,而這個獵聘網的老闆竟然是真實的獵聘網的CEO戴科彬        戴科彬,廣東人,畢業于中山大學金融專業,現為獵聘網創始人兼首席執行官,中國招聘營銷專家。 曾服務于PG寶潔公司,任職市場部大中華區品牌經理,管理過碧浪、護舒寶...
2025-08-10
演員最想扮演的超級英雄(面試了超級英雄)
演員最想扮演的超級英雄(面試了超級英雄)
  最近幾年時間,無論是海外電影市場,還是國内電影市場,超級英雄類型的電影向來不缺乏觀衆,甚至超級英雄類型的電影已經成為了票房的保證了。從去年票房大賣的漫威宇宙的《複仇者聯盟3:無限戰争》,再到DC宇宙的翻身大作《海王》,幾乎每一部超級英雄電影都是票房大賣。      如今超級英雄類型的電影已經成為了電影市場上的“香饽饽”了,在超級英雄電影如此大熱的今天,電...
2025-08-10
Copyright 2023-2025 - www.tftnews.com All Rights Reserved