返回列表 上一主題 發帖

[發問] 禁止使用進階篩選問題

[發問] 禁止使用進階篩選問題

請問當工作表保護中,如何使進階篩選功能失效?
先謝謝各位先進了
機器人三大定律-保護人類、服從命令、保護自己
我的三大定律-生命、生存、生活

回復 1# asimov


    http://www.excelforum.com/excel-worksheet-functions/622120-disabling-the-advanced-filter-function.html

After i protect the sheet and disable the autofilter function
The Advanced Filter menu can be disabled just like any other menu item using VBA.
The following statement will disable that entry:
在被保護的工作表下禁用進階篩選
他是用VBA寫的...麻煩asimov先進..您到這網站去看囉...
http://translate.google.com.tw/translate?hl=zh-TW&sl=en&tl=zh-TW&u=http%3A%2F%2Fwww.excelforum.com%2Fexcel-worksheet-functions%2F622120-disabling-the-advanced-filter-function.html&anno=2

代碼: Code:
Application.CommandBars
Application.CommandBars("Data").
Controls("Filter").Controls("Advanced Filter...")
Enabled
學如逆水行舟 不進則退

TOP

本帖最後由 GBKEE 於 2010-8-26 12:30 編輯

回復 1# asimov
將工作表的所有Cells  指令 格式-> 儲存格-> 保護  設定為鎖定 就可以
選取所有Cells  如圖



TOP

回復 2# PD961A
感謝 PD961A 提供vba的解決方法,讓我先研究一下

回復 3# GBKEE
感謝 GBKEE 版主提供的方法
如附件,已鎖定所有儲存格,保護工作表時已取消所有使用功能
但是使用進階篩選時,仍然可以正常執行
進階篩選.zip (1.77 KB)

雖然在保護狀態,只要以手動輸入資料範圍與準則範圍,依然可以執行進階珊選
請版主再次指導了
機器人三大定律-保護人類、服從命令、保護自己
我的三大定律-生命、生存、生活

TOP

回復 4# asimov
1 將作用中儲存格移動到資料庫範圍內, 按兩次 自動篩選指令   
2 將作用中儲存格移動到  離開資料庫範圍 一欄或 一列 的範圍之外
3 設定 保護工作表
    如圖  將作用中儲存格移到 粉紅色範圍之外


TOP

回復  asimov
1 將作用中儲存格移動到資料庫範圍內, 按兩次 自動篩選指令   
2 將作用中儲存格移動到  離 ...
GBKEE 發表於 2010-8-26 21:54



GBKEE 版主,儲存格移到資料庫範圍外,還是可以使用進階篩選
只要在資料範圍內輸入 A1:D7 ,按確定,一切正常
不知有沒有辦法讓"進階篩選"變成灰色,或許還有其他方式
再次謝謝版主了
機器人三大定律-保護人類、服從命令、保護自己
我的三大定律-生命、生存、生活

TOP

回復 6# asimov
用vba   取消
Application.CommandBars.FindControl(, 901).Visible = False
恢復時用
Application.CommandBars.FindControl(, 901).Visible = True

TOP

回復 6# asimov

asimov先進
   
http://translate.google.com.tw/translate?hl=zh-TW&sl=en&tl=zh-TW&u=http%3A%2F%2Fwww.excelforum.com%2Fexcel-worksheet-functions%2F622120-disabling-the-advanced-filter-function.html&anno=2

這篇文章的最後1句就是您要的結果的...您可以試試看.....

The following code would re-activate the Advanced Filter menu option, and could be placed in the ThisWorkbook module.
In the VB Editor (press ALT+F11 to get there), double-click on the 'ThisWorkbook' entry in the left-hand column, then paste this code:
在VB編輯器(按Alt + F11到那裡),雙擊的'的ThisWorkbook'項目在左側列中,然後貼上此代碼:



取消:Application.CommandBars Application.CommandBars("Data").Controls("Filter").Controls("Advanced Filter...").Enabled = False

恢復(啟用):Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.CommandBars("Data").Controls("Filter").Controls("Advanced Filter...").Enabled = True End Sub

回復 #7 GBKEE

版主可以另外請問您程式中的(, 901).是什麼意思嗎?謝謝您…
學如逆水行舟 不進則退

TOP

回復 8# PD961A
  1. Sub 控制項的識別碼()
  2.     MsgBox Application.CommandBars.FindControl(, 901).ID
  3.     For Each E In Application.CommandBars
  4.         MsgBox E.ID
  5.     Next
  6. End Sub
複製代碼

TOP

回復 7# GBKEE

GBKEE 版主
這就是我要的功能,終於解決長久以來的困擾,十分感謝您的協助

回復 8# PD961A

謝謝 PD961A 提供的說明
經套用後出現"程式呼叫或引數不正確"
還是感謝您的協助

程式中的(, 901)是甚麼意思?
經過測試 901 是"進階篩選"
900 是"全部顯示"
899 是"自動篩選"
以上說法如果有錯,請版主或各先進指正
機器人三大定律-保護人類、服從命令、保護自己
我的三大定律-生命、生存、生活

TOP

        靜思自在 : 我們要做好社會的環保,也要做好內心的環保。
返回列表 上一主題