返回列表 上一主題 發帖

[發問] 篩選的語法

[發問] 篩選的語法

請問大大:
篩選的語法我只會寫這樣的
,AutoFilter Field:=XX ...........
,但每次表格一有變動,就要再修改程式
請問還有沒有不同寫法?例如用變數或定義命名方式?寫法是怎樣的? 請教!!

    With Sh
    Sh.Activate
        .UsedRange.AutoFilter Field:=44, Criteria1:=">0", Operator:=xlAnd  '>0的資料
        Set A = .Range("F4", .Range("F4").End(xlDown))  '從..到資料最底
        A.Copy
    End With

    With xSh
        xSh.Activate
        Range("A5").Activate
        .Range("A5").PasteSpecial xlPasteValues  '選擇性貼上值
        Application.CutCopyMode = False '使來源的copy的虛線閃動停止
        Application.DisplayAlerts = False '在程序執行過程中使出現的警告框不顯示
    End With

回復 1# PJChen
可以用要篩選的欄位名稱找出位置,來取代固定的位置
Sub ex()
For Each a In Range("a1:M1")
    If a = "欄位名稱" Then Exit For
Next
  Selection.AutoFilter Field:=a.Column, Criteria1:=2
End Sub

TOP

回復 2# jcchiang
感謝...我再試試看

TOP

回復 2# jcchiang

大大,
語法測試OK
不過想請教,表格中若表頭的命名有很多重複的,在不更改名稱的情形下,要怎麼套用這個語法?

TOP

回復 4# PJChen
要篩選的欄位名稱重複,如可知道是用第幾個做篩選可加個計數

Sub ex()
x=0
For Each a In Range("a1:M1")
     If a = "欄位名稱" Then x=x+1
       If x = 第幾個名稱 Then Exit For
Next
   Selection.AutoFilter Field:=a.Column, Criteria1:=2
End Sub

TOP

回復 5# jcchiang
感謝你教這個語法...我再試試

TOP

        靜思自在 : 難行能行,難捨能捨,難為能為,才能昇華自我的人格。
返回列表 上一主題