Note: The other languages of the website are Google-translated. Back to English

如何對受保護的工作表中的行進行分組和取消分組?

眾所周知,在受保護的工作表中,應用某些操作有很多限制。 例如,我們無法在分組數據和未分組數據之間切換。 有沒有一種方法可以對受保護的工作表中的行進行分組或取消分組?

使用VBA代碼對受保護的工作表中的行進行分組和取消分組

Office選項卡在Office中啟用選項卡式編輯和瀏覽,並使您的工作更加輕鬆...
Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%
  • 重用任何東西: 將最常用或最複雜的公式,圖表等添加到您的收藏夾中,並在將來快速重用它們。
  • 超過20種文字功能: 從文本字符串中提取數字; 提取或刪除部分文字; 將數字和貨幣轉換為英文單詞。
  • 合併工具:將多個工作簿和工作表合二為一; 合併多個單元格/行/列,而不會丟失數據; 合併重複的行和總和。
  • 分割工具:根據價值將數據分割成多個工作表; 一本工作簿可轉換為多個Excel,PDF或CSV文件; 一列到多列。
  • 跳過粘貼 隱藏/過濾的行; 計數與求和 按背景色; 向多個收件人批量發送個性化電子郵件。
  • 超級過濾器: 創建高級過濾方案並應用於任何工作表; 分類 按星期,日期,頻率等 篩選 用粗體,公式,註釋...
  • 超過300個強大的功能; 適用於 Office 2007-2021 和 365; 支持所有語言; 在您的企業或組織中輕鬆部署。

箭頭藍色右氣泡 使用VBA代碼對受保護的工作表中的行進行分組和取消分組

也許,沒有其他解決該問題的好方法,但是使用VBA代碼,請執行以下操作:

1。 激活您要使用的工作表,請確保該工作表尚未受到保護。

2。 然後按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications窗口.

3。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊窗口.

VBA代碼:在受保護的工作表中對行進行分組和取消分組

Sub EnableOutlining()
'Update 20140603
Dim xWs As Worksheet
Set xWs = Application.ActiveSheet
Dim xPws As String
xPws = Application.InputBox("Password:", xTitleId, "", Type:=2)
xWs.Protect Password:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
End Sub

4. 然後按 F5 鍵運行該代碼,然後會彈出一個提示框,提醒您輸入密碼以保護當前工作表。 看截圖:

受保護工作表 1 中的文檔組

5。 然後點擊 OK,您的工作表已受到保護,但是您可以在此受保護的工作表中展開和收縮輪廓符號,請參見屏幕截圖:

受保護工作表 1 中的文檔組

備註:如果您的工作表已經受到保護,則此代碼將不起作用。


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (32)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
這似乎工作得很好,但是當我關閉並重新打開工作簿時,我遇到了同樣的問題 - 我無法展開折疊的組。
網站主持人對此評論進行了最小化
我也有同樣的問題,有誰知道怎麼解決。 非常感謝
網站主持人對此評論進行了最小化
為此,您需要 VBA,最終用戶將需要允許宏才能使其正常工作。

按 Alt+F11 激活 Visual Basic 編輯器。

雙擊左側項目資源管理器中 Microsoft Excel 對像下的 ThisWorkbook。

將以下代碼複製到出現的模塊中:



私人子工作簿_打開()
使用工作表(“Emp 摘要”)
.EnableOutlining = True
.Protect UserInterfaceOnly:=真
結束
END SUB



每次打開工作簿時都會自動執行此代碼。
網站主持人對此評論進行了最小化
[quote]這似乎很好用,但是當我關閉並重新打開工作簿時,我遇到了同樣的問題 - 我無法展開折疊的組。通過 maich[/quote]這件事解決如下 Private Sub Workbook_Open() Dim wsh As Variant For Each wsh In Worksheets(Array("Sheet1", "Sheet2")) wsh.EnableOutlining = True wsh.Protect Password:="260615" , DrawingObjects:=False, _ contents:=True, _ Scenarios:=True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Next wsh End Sub
網站主持人對此評論進行了最小化
我遇到了同樣的問題,一旦我關閉並重新輸入工作表,它就不起作用...請逐步說明在哪里以及如何使用這件事解決瞭如下 Private Sub Workbook_Open() Dim wsh As工作表中每個 wsh 的變體(數組(“Sheet1”,“Sheet2”)) wsh.EnableOutlining = True wsh.Protect Password:="2606 15", DrawingObjects: =False, _ contents:=True, _ 場景: =True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Next wsh End Sub
網站主持人對此評論進行了最小化
非常感謝兄弟,這真的很好用。非常感謝
網站主持人對此評論進行了最小化
你是怎麼讓它工作的? 我已經嘗試將它添加到上面的 VBA 並製作一個不同的模塊,但它仍然不起作用。 我需要更改任何代碼嗎? 就像我正在使用的密碼一樣,還是需要更改工作表名稱?
網站主持人對此評論進行了最小化
當我關閉工作簿時,我遇到了同樣的問題。 有什麼想法可以解決嗎?
網站主持人對此評論進行了最小化
Private Sub Workbook_Open() 將 wsh 作為工作表中每個 wsh 的變體(數組(“TD_phase_3”,“RS_Phase_2”)) wsh.EnableOutlining = True wsh.Protect Password:="260615",DrawingObjects:=False,_ 內容: =True, _ Scenarios:=True, _ AllowFiltering:=True, _ AllowFormattingCells:=True, _ userinterfaceonly:=True Next wsh End Sub
網站主持人對此評論進行了最小化
仍然不確定這是如何工作的。 我是製作一個新模塊還是附加到上面的模塊?
網站主持人對此評論進行了最小化
你能像他們在原始說明中所做的那樣,一步一步地把它放在哪裡嗎? 謝謝你。
網站主持人對此評論進行了最小化
你好! 我成功使用了第一個宏,然後遇到了關閉工作簿和宏不再工作的相同問題。 我看到了上面的解決方案,但根本無法讓它發揮作用。 你介意帶我過去嗎? 我是結合這兩個代碼還是只使用後者? 如果我的密碼是“dog”,我是否要替換代碼中的某個值? 我只申請一個工作表(“Sheet1”); 我可以在任何地方使用它嗎? 提前謝謝了!!
網站主持人對此評論進行了最小化
請幫助我,我想在受保護的 Excel 電子表格中折疊和展開一些捲和列。 我怎樣才能使用宏來做到這一點? 我已經嘗試過您展示的內容,但它們在我的電子表格上不起作用。 請幫忙。
網站主持人對此評論進行了最小化
您好,請幫我在受保護的 excel 電子表格中展開和折疊捲和列。 我嘗試使用您在上面顯示的那些,但它們不起作用。
網站主持人對此評論進行了最小化
有沒有被問過/回答過? 您可以在代碼中的何處指定/更改個人密碼?
網站主持人對此評論進行了最小化
如何將密碼更改為另一個值?
網站主持人對此評論進行了最小化
當我使用該命令時,我看到如下所示的錯誤消息:
私人子工作簿_打開()
將 wsh 變暗為變體
對於工作表中的每個 wsh(Array("TD_phase_3", "RS_Phase_2"))
wsh.EnableOutlining = True
wsh.Protect Password:="260615", DrawingObjects:=False, _
內容:=真,_
場景:=真,_
允許過濾:=真,_
AllowFormattingCells:=真,_
僅用戶界面:=真
下一個 wsh
END SUB
運行時錯誤“9”:
下標超出範圍
網站主持人對此評論進行了最小化
這有點作用,一旦你關閉並重新打開,它就會停止:(
網站主持人對此評論進行了最小化
即使對我來說,還有其他解決方案嗎?
網站主持人對此評論進行了最小化
子工作簿_Open()
'更新 20140603
將 xWs 調暗為工作表
設置 xWs = Application.ActiveSheet
將 xPws 調暗為字符串
xPws = "rfc" ''Application.InputBox("密碼:", xTitleId, "", 類型:=2)
xWs.Protect 密碼:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
END SUB
網站主持人對此評論進行了最小化
我已經讓這段代碼工作了。 但是當我關閉並重新打開時,我必須轉到開發人員選項卡,選擇宏按鈕,選擇運行並輸入密碼。

有沒有辦法從代碼中刪除密碼或自動運行代碼會自動運行這個 marco 並輸入密碼?
網站主持人對此評論進行了最小化
要解決在您關閉並再次打開文件後無法在文件中運行的問題,您必須將 VBA 代碼粘貼到 Microsoft Excel 對像下的“ThisWorkbook”中,而不是粘貼新模塊。 這將在每次打開文件時自動運行宏。
網站主持人對此評論進行了最小化
您是否有關於 6 天前討論的 VBA 代碼的視覺效果,以便在 Microsoft 對象而不是新模塊下對 ThisWorkbook 進行桃色清理。 返回工作簿時功能丟失
網站主持人對此評論進行了最小化
有人可能需要這個,我想我想出瞭如何做到這一點。

首先,正如@peachyclean 建議的那樣,您的代碼需要在 Microsoft Excel 對像下的“ThisWorkbook”中編寫。
其次,獲取@Sravanthi 編寫的代碼,並粘貼到上述位置。

子工作簿_Open()
'更新 20140603
將 xWs 調暗為工作表
設置 xWs = Application.ActiveSheet
將 xPws 調暗為字符串
xPws = "rfc" ''Application.InputBox("密碼:", xTitleId, "", 類型:=2)
xWs.Protect 密碼:=xPws, Userinterfaceonly:=True
xWs.EnableOutlining = True
END SUB

問題是您需要在要保護但允許使用分組的工作表上,並保存工作簿並關閉,而不進行保護。 現在如果你打開它,宏會自動啟動,它會用密碼“rfc”保護工作表。 現在您可以使用分組,工作表受到保護。

對於我的解決方案,我修改了應用的密碼,因此您可以在此處重寫任何密碼:
xPws = "WRITEANYPASSWORDHERE" ''Application.InputBox("密碼:", xTitleId, "", 類型:=2)

此外,我不希望在打開文件時激活要保護的工作表,因此我修改了這部分:
設置 xWs = Application.ActiveSheet ->
設置 xWs = Application.Worksheets("WRITEANYSHEET'SNAMEHERE")

現在它像魅力一樣工作,名為“WRITEANYSHEET'SNAMEHERE”的工作表受到保護,但分組適用。 從長遠來看,我認為問題在於,如果我想修改此文件並保留解決方案,我需要取消保護此工作表以使其在下一次打開時工作。 我想您可以編寫另一個宏以在關閉時自動取消保護:)


我希望它有所幫助。
網站主持人對此評論進行了最小化
嗨..這創造了奇蹟。 我現在唯一卡住的地方是我需要為工作簿中的多張工作表執行此操作。 你能幫忙嗎?
網站主持人對此評論進行了最小化
這個字符串看起來正是我需要的,因為我對 VBA 一無所知。 我最初能夠讓它工作,但正如所指出的,一旦你關閉電子表格並重新打開它,它就不再工作了。 如前所述,我嘗試在“ThisWorkbook”中編寫代碼,但我不知道該怎麼做。 我可以看到“ThisWorkbook”,但我不知道怎麼寫。 我看到創建模塊的每一種方式,它都會在“Microsoft Excel Objects”文件夾之外的單獨“模塊”文件夾中創建一個新模塊。 有關如何將此代碼放入“ThisWorkbook”的任何建議?
網站主持人對此評論進行了最小化
網站主持人對此評論進行了最小化
如何在受保護的工作表中對行和列進行分組和取消分組?
網站主持人對此評論進行了最小化
f*ck,這後來偷了我的excel並私下更改了密碼
網站主持人對此評論進行了最小化
有沒有辦法讓它在共享工作簿上工作? - 我需要更改曲目,謝謝
這裡還沒有評論
載入更多
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護