Page 1 of 1

ต้องการ Auto filter จาก Cell ที่ระบุ

Posted: Fri Jul 01, 2011 10:47 am
by ekkaluk_suk
ต้องการให้เราเลือกเดือนที่ cell ที่เรากำหนด แล้ว ค่า Auto filter เปลี่ยนตามที่เราเลือก
ใน file ตัวอย่างที่แนบมานี้ ต้องการเลือกที่ cell F29 แล้วในตารางแสดงตามเดือนที่เราเลือก
จะใช้วิธีการใดได้บ้าง

Re: ต้องการ Auto filter จาก Cell ที่ระบุ

Posted: Fri Jul 01, 2011 11:09 am
by snasui
:D น่าจะเหมือนกับกระทู้นี้ซึ่งใช้ VBA ร่วมกับ Advanced Filter ครับ http://www.snasui.com/viewtopic.php?f=3&t=1193

Re: ต้องการ Auto filter จาก Cell ที่ระบุ

Posted: Fri Jul 01, 2011 11:50 am
by ekkaluk_suk
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Range("A1").Address = "$B$4" And Target.Range("A1") <> "" Then
AdvancedFilterData
ElseIf Target.Range("A1").Address = "$B$4" And Target.Range("A1") = "" Then
ShowDataAll
End If
End Sub


ขอความหมายหน่อยครับ ลองมา Run ที่ file ของผมแล้วมัน error เพราะดูที่ Macro แล้วไม่เห็นมีการกำหนดช่วง
และ column ที่จะ filter เลย

Re: ต้องการ Auto filter จาก Cell ที่ระบุ

Posted: Fri Jul 01, 2011 11:56 am
by snasui
:D ไฟล์ในกระทู้นั้นมี Code ตามด้านล่างอยู่ด้วยครับ

Code: Select all

Sub AdvancedFilterData()
    Range("$A$3:$E$300").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("$G$2:$G$3"), Unique:=False
End Sub

Sub ShowDataAll()
    ActiveSheet.ShowAllData
End Sub
จาก
ekkaluk_suk wrote:

Code: Select all

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Range("A1").Address = "$B$4" And Target.Range("A1") <> "" Then
    AdvancedFilterData
ElseIf Target.Range("A1").Address = "$B$4" And Target.Range("A1") = "" Then
    ShowDataAll
End If
End Sub
ขอความหมายหน่อยครับ ลองมา Run ที่ file ของผมแล้วมัน error เพราะดูที่ Macro แล้วไม่เห็นมีการกำหนดช่วง
และ column ที่จะ filter เลย
หมายความว่า ถ้า ณ ขณะนี้ทำงานอยูกับเซลล์ B4 และ B4 ไม่เป็นเซลล์ว่างแล้วให้ Run Code AdvancedFilterData หากไม่เช่นนั้นให้ Run Code ShowDataAll