Page 1 of 1

AutoFilter ใน VBA

Posted: Thu May 23, 2013 4:46 pm
by วังวู ช่ง
เรียน ท่าน อาจารย์ และสมาชิกทุกท่านครับ ผมติดปัญหา AutoFilter ใน VBA ไม่ทำงานครับ ลองช่วยดูให้ด้วยครับ
ขอบคุณล่วงหน้าครับ
อาจารย์เป็นผู้เขียนให้ครับ แต่ผมเปลี่ยนแปลงข้อมูลในตารางแล้วไม่ทำงานครับ

Code: Select all

Sub Filter1()
    ActiveSheet.Range("$O$10:$X$719").AutoFilter Field:=1, Criteria1:=Range("L2").Value
End Sub
Sub Filter()
    If Range("L2") = "" Then
        ActiveSheet.ShowAllData
    Else
        ActiveSheet.Range("$O$10:$X$719").AutoFilter Field:=1, _
            Criteria1:=Range("L2").Value
    End If
End Sub

Re: AutoFilter ใน VBA

Posted: Thu May 23, 2013 4:58 pm
by snasui
:shock: บรรทัดที่ 10 ค่าหายไป จำเป็นต้องมีข้อมูลเพื่อการ Filter ครับ

Re: AutoFilter ใน VBA

Posted: Thu May 23, 2013 7:10 pm
by วังวู ช่ง
snasui wrote::shock: บรรทัดที่ 10 ค่าหายไป จำเป็นต้องมีข้อมูลเพื่อการ Filter ครับ
ได้แล้วครับ ที่ List ขาดข้อมูลนี้ครับ

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "[color=#FF0000]$L$2[/color]" Then Call Module2.Filter
End Sub

Re: AutoFilter ใน VBA

Posted: Fri May 24, 2013 12:16 am
by yodpao.b
เรียนอาจารย์ครับ

ความหมาย "ผมติดปัญหา AutoFilter ใน VBA ไม่ทำงานครับ"คืออะไรครับ

ที่ผมเข้าใจคือ เซล L2 เมื่อเปลี่ยนตัวเลข การกรองข้อมูลใน Range("$O$10:$X$719") ก็จะทำงานใช่ไหมครับ

Re: AutoFilter ใน VBA

Posted: Fri May 24, 2013 12:31 am
by snasui
:D เข้าใจถูกแล้วครับ ถ้าไม่มี Code ด้านล่างนี้ก็จะไม่ทำงานเนื่องจากไม่มีตัวดักจับการเปลี่ยนแปลงใน L2 เพื่อสั่งให้ Run Code Module2.Filter
วังวู ช่ง wrote:

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$L$2" Then Call Module2.Filter
End Sub

Re: AutoFilter ใน VBA

Posted: Fri May 24, 2013 1:15 am
by yodpao.b
ได้แล้วตรับ ขอบคุณครับ