標題:
[發問]
點2下快速篩選
[打印本頁]
作者:
vinejason
時間:
2016-4-11 15:43
標題:
點2下快速篩選
各位前輩平安
想要簡化篩選動作
例如:
有張表格有7個欄位
資料有數千筆
可否做到
游標所在位置按2下 , 即按所在儲存格的質 , 自動進行篩選
再按2下自動恢復原狀
謝謝
作者:
准提部林
時間:
2016-4-11 18:09
請上傳檔案!
作者:
luhpro
時間:
2016-4-12 22:43
回復
1#
vinejason
不論是 WorkSheet 還是 Range 都沒有提供 DblClick 事件,
除非你VB功力很強,
否則還是只能使用系統原有的事件函數來處理.
此類需求我大都是改由 Worksheet_BeforeRightClick 事件來觸發,
頂多是要留意若最後設定 Cancel = True 則執行完直接結束,
可以避免繼續執行預設的 RightClick 程序.
作者:
准提部林
時間:
2016-4-13 10:05
回復
3#
luhpro
Worksheet_BeforeDoubleClick 可雙按觸發,
有問題, 沒有附件, 不想再多花時間去寫猜想的程式, 修修改改很費時!!!
作者:
luhpro
時間:
2016-4-16 01:18
本帖最後由 luhpro 於 2016-4-16 01:25 編輯
回復
4#
准提部林
嗯...
匆忙下當時我只記得翻 DblClick 事件選單沒往上拉...
是我的疏忽,抱歉.
回復
1#
vinejason
現在看到 Worksheet 果然是有 BeforeDoubleClick 事件.
那麼要做到樓主的需求就容易了.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If .Parent.FilterMode Then ' 檢查自動篩選狀態
Selection.AutoFilter ' 是則取消自動篩選狀態
Else
Selection.AutoFilter Field:=.Column, Criteria1:=.Value, VisibleDropDown:=False ' Field : 篩選值欄位號碼, Criteria1 : 篩選值, VisibleDropDown : 自動篩選狀態時要不要顯示向下箭頭
End If
End With
Cancel = True ' 之後不要執行使用者按下 Double Click 的處理動作
End Sub
複製代碼
[attach]23871[/attach]
另一個下載網址 :
http://www.FunP.Net/592865
作者:
准提部林
時間:
2016-4-16 11:54
回復
5#
luhpro
提供另一方案參考:
目的:可逐欄進行各條件的篩選,達到越篩越少的效果
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim uR As Range
Set uR = ActiveSheet.UsedRange
With Target
If Intersect(uR, .Item(1)) Is Nothing Then Exit Sub '非資料區內, 跳出
Cancel = True
If .Row = 1 Then .Parent.AutoFilterMode = False: Exit Sub '標題列雙按, 解除篩選模式
If .Parent.AutoFilterMode = False Then uR.AutoFilter '若非篩選狀態,啟動篩選模式
If .Parent.AutoFilter.Filters(.Column).On = True Then '判斷該欄是否執行過篩選
Selection.AutoFilter Field:=.Column '若是該欄已篩選, 顯示全部
Else
Selection.AutoFilter Field:=.Column, Criteria1:=.Value '若該欄未篩選, 執行篩選
End If
End With
End Sub
複製代碼
參考檔:
[attach]23879[/attach]
作者:
vinejason
時間:
2016-4-18 09:46
luhpro 與 准提部林 平安
在excel的工作表篩選的功能 , 因為您們變得更便捷
謝謝您們
但是 仍有困難
執行階段錯誤 424 , 此處需要物件
If Intersect(uR, .Item(1)) Is Nothing Then
實在困惑 !
作者:
准提部林
時間:
2016-4-18 14:42
回復
7#
vinejason
上傳檔案看看!!
作者:
vinejason
時間:
2016-4-18 18:07
回復
8#
准提部林
請看檔案
[attach]23897[/attach][attach]23897[/attach]
作者:
准提部林
時間:
2016-4-18 19:37
回復
9#
vinejason
Private Sub Worksheet_BeforeDoubleClick(ByVal
T
As Range, Cancel As Boolean)
Private Sub Worksheet_BeforeDoubleClick(ByVal
Target
As Range, Cancel As Boolean)
那個 T 的問題吧!
作者:
vinejason
時間:
2016-4-19 09:21
回復
10#
准提部林
問題解開就使愚人通達 , 羡慕智慧人的聰明 !
謝謝您
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)