2016-02-04 42 views
1

我有一個非常具體的問題,我正在尋求幫助回答。我一直在研究幾個小時,我覺得我無法找到我想要的東西。下面是標準的簡要概述,我的文檔必須遵循:如何防止未鎖定的單元格被選中/可編輯? (VBA)

  • 我用Excel 2013
  • 我只是將使用行數據輸入(而不是Excel對象 表)。
  • 最上面/第一行將作爲我的「列標題」。
  • 此頂行將啓用AutoFilter。
  • 必須保護文件(必備)!
  • 我將使用VBA代碼

現在,我有完成這個文件具有最後的問題是最後兩個標準點,我必須有:

  • 第一/頂行(列標題)必須不可編輯
  • 每列必須能夠排序和篩選。現在

,在一個完美的世界,我只想「鎖定單元格」爲充當我的列標題整個第一排,當我保護工作表我會確保選中「類別」和「使用自動篩選「框。

但是,此選項不起作用,因爲在嘗試對數據進行排序時似乎存在問題。如果我只是過濾數據沒有問題,但是當我嘗試按升序/降序對列進行排序時,我將得到一個錯誤,通知我在受保護模式下無法對鎖定的單元格進行排序。這是因爲當excel使用Sort函數時,它將頭部作爲正在排序的數據的一部分進行計數(我通過我的研究發現了這一點),即使我真的只希望它下面的數據被排序。

我一直在試圖就如何克服這個問題以及研究不同的方法進行頭腦風暴,而且我很難得出最終結論。不過,我已經把範圍縮小到2個可能的解決方案:

  1. 我希望能保持細胞的第一行正式解鎖允許按預期自動篩選的sort命令工作,但要「行爲「當用戶嘗試對其進行更改時(如AKA,使整行不可編輯或不可選),就像單元格已鎖定一樣。
  2. 另一種選擇是保持鎖定第一行,但不知何故在VBA中有一個事件可以告訴用戶何時嘗試對該列進行「排序」,然後該列將臨時解除工作表保護,按照預期進行操作排序命令,然後再次保護工作表(顯然,雖然我的研究沒有可以觸發AutoFilter排序命令的事件)。

這兩種解決方案是我可以基於我的研究而想到的最合理的方法,但如果有人有Excel天才,並且知道另一種方式,我願意接受建議。

預先感謝您的幫助/建議,

特拉沃

+0

將您的數據保存在另一張紙上並鎖定。創建另一個工作表以顯示數據。當過濾器/排序觸發時,從您的鎖定表中複製數據,然後進行過濾/排序。 – Jules

回答

0

考慮使用標題行。第一行將受到保護,第二行將有助於篩選和排序第3行和以下行中的數據。

相關問題