2016-08-17 78 views
1

我在想,如果有人可以幫助我在Excel 2013年禁用高級篩選選項禁用高級篩選2013

我已經使用了以下禁用所有其他數據絲帶選項:

.Protect UserInterfaceOnly:=True 

但高級過濾器仍然可以選擇。有了它,他們可以不需要數據。

用於較老版本的Excel工作,但我似乎無法得到它爲Excel 2013工作,下面的代碼:

Application.CommandBars("Worksheet Menu Bar").Controls _ 
    ("&Data").Controls("&Filter").Controls("&Advanced Filter...").Enabled = False 

如果有人可以幫我這個或點我在正確的方向那麼將不勝感激。

謝謝你們。

+0

你希望從阻止某人更換過濾器中獲得什麼?如果您有不希望人們查看的數據,則只允許訪問已編輯的文檔。任何有權訪問過濾電子表格的人都可以閱讀底層文件以查看隱藏的數據。 – Phylogenesis

+0

嗨植髮。我編寫了代碼來檢測基於計算機用戶名「Int(Environ(」Username「))的用戶ID,並過濾數據以僅顯示其數據。我保護了工作表,因此他們無法訪問其他任何內容,但高級過濾器選項導致了問題。我明白,如果他們真的想讓代碼禁用它,那麼他們可以但這只是阻止大多數用戶訪問此。 –

+0

問題是,您可以讀取Excel以外的文件(或使用VBA)來讀取隱藏的數據。如果你出於安全考慮而這樣做,那就太浪費時間了。 – Phylogenesis

回答

1


解推薦
的方法將來自用戶接口被隱藏按鈕:在此溶液中的優點在於,代碼不是在VBA(完全),所以,不那麼容易爲用戶修改它(或知道後臺發生了什麼)。
回答解釋/下一步驟
這是真的參與了這麼多的步驟的深答案,我只是發佈指導和一些有用的鏈接,你可能會先研究一下這種方式。
1.下載Custom UI Editor for Microsoft Office:這有助於修改文檔的用戶界面。
2.尋找教程;開始在那裏添加一些基本的代碼,比如添加一個標籤和一個按鈕,(this is a good one)
3.回到Excel,查找生命週期和自定義事件,this is a good place to start
4.您需要在加載功能區時捕獲事件;在那段時間,您需要禁用按鈕,這些鏈接(1,2)對於顯示步驟和一些示例工作簿很有用。
5.找到該按鈕的ID並將其禁用(提示:如果您已經按照前面的步驟操作,則idMSO = AdvancedFilterDialog,這在此處是有意義的)。
更多信息/回答免責聲明
Excel是不是可以深深處理安全軟件;如果您試圖在原始文件中以某種方式限制用戶,則應嘗試其他方法-IG:工作簿的副本僅供參考,而主節點的副本僅保存在共享點中,且只能由獲得授權的人員修改。

雖然S.Oo中的FAQ對於引用其他站點時沒有使用適當的引用是嚴格的,但這是一個深層次的解決方案,即使是一個隨機示例也需要頁面解釋;呼籲指導主題,這個答案應該沒問題。