2016-11-21 107 views
0

如何保護工作表以便用戶對錶進行排序?使用受保護的工作表排序表

我有:

  1. 鎖定在表
  2. 受保護的片材sortSelect unlocked cellsAutoFilter檢查
  3. 解鎖細胞中的表的標題。

如果我點擊按鈕旁邊的標題我過濾表,但是如果我想對它進行排序...我收到此錯誤信息:

細胞或圖表,你正試圖改變是受保護的,因此是隻讀的。

要修改受保護的單元或圖表,首先使用「解除保護頁」命令(「審閱」選項卡,「更改」組)刪除保護。您可能會被提示輸入密碼

但是,如果我解鎖標題,用戶可以對它進行排序和編輯。不幸的是,我不希望他改變標題,只是對下面的單元格進行排序。這可能嗎?

非常感謝您提前回答您的問題!

*編輯

也許這是唯一與VBA(添加標籤VBA)可能

+0

應用工作表保護。除「使用自動過濾器」外,取消選擇所有內容 – Tom

回答

0

我也一直在尋找的答案,這一段時間,不幸的是,我不認爲它沒有vba是可能的。此外,我不認爲點擊列標題中的過濾器/排序按鈕會觸發事件,因此您需要添加一個運行以下示例代碼的按鈕(需要根據需要進行調整) :

Sub sortColumn() 
'Unprotect sheet (Change "password" or remove it if you don't have any) 
ActiveSheet.Unprotect Password:="password" 

'Use Sort function (you can use the macro recorder to find the right code for other sorting/filter-options) 
'Adapt Sheetname and Range of table to your needs 
Sheets(1).AutoFilter.Sort.SortFields.Clear 
Sheets(1).AutoFilter.Sort.SortFields.Add Key:= _ 
    Range("A1:A10"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _ 
    :=xlSortNormal 
With ActiveWorkbook.Worksheets(1).AutoFilter.Sort 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

ActiveSheet.Protect Password:="password" 

End Sub 

一種先進的解決方案是創建一個用戶形式,其中用戶可以選擇他想要排序的列(S)和排序次序(升/降)。

相關問題