- 帖子
- 58
- 主題
- 9
- 精華
- 0
- 積分
- 117
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2003
- 閱讀權限
- 20
- 註冊時間
- 2017-12-2
- 最後登錄
- 2021-12-16
|
如何取消部分已被篩選的選項
篩選總共分成前後區段,分別是1~49 & 51~99,50的位置是中間分格
需求是在不影響51~99被篩選的部分,將1~49全部改為"全部"就是原始未篩選的狀態,反之亦然。
sub 篩選前端 ()
Dim var_min, var_max,i, j, s As Integer
var_min = 1 '前半段起
var_max = 49 '前半段迄
For i = var_min To var_max
i = i + 1
Selection.AutoFilter Field:=i
Next i
End Sub
sub 篩選後端 ()
Dim var_min, var_max,i, j, s As Integer
var_min = 51 '後半段起
var_max = 99 '後半段迄
For i = var_min To var_max
i = i + 1
Selection.AutoFilter Field:=i
Next i
End Sub 由錄製可以得到,一般的篩選指令是
Selection.AutoFilter Field:=5, Criteria1:="W" '將第5欄篩選為W
但是選擇取消該欄位的篩選,選擇全部則只會是
Selection.AutoFilter Field:=i
'從錄製看起來沒有給後面這串指定值就是全部了
'將該格篩選為"全部"
所以有了上面的程式碼,但看起來是沒有效果的。
想請問取消篩選的指令是? (Criteria1:= ?)
還有如果不用迴圈有直接選取範圍的方法嗎?
或是只能用迴圈,有用文字而非欄位數的方法?
像目前1~49其實是A~AX,51~99其實是AY~CU
可以直接指定文字下去迴圈嗎?
畢竟直接看到的是文字,比再去換算數字直觀。 |
|