คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 1
จากที่ดู Code คือต้องการ Filter 3 เงือนไขรึเปล่า ครับ
้ไม่รู้ตรงโจทย์รึเปล่านะครับ ลองปรับใช้ดูครับ
Sub MyFilter()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1") 'ใส่ชื่อ Sheet name ของ File ที่เราตั้ง
Dim DStart As Variant, DEnd As Variant, Name As String
Dim row As Long
'กรอก Keyword ข้อมูล ที่ต้องการจะ filter
DStart = Format(ws.Range("H1").Value, "mm/dd/yyyy") 'วันที่เริ่มต้น
DEnd = Format(ws.Range("I1").Value, "mm/dd/yyyy") 'วันที่สุดท้าย
Name = ws.Range("J1").Value 'Name
row = ws.Cells(ws.Rows.Count, "K").End(xlUp).row 'นับจำนวนแถวข้อมูลทั้งหมดใน column k (ถ้าจะนับ column ไหนก็ให้เปลี่ยนตรง K)
ws.AutoFilterMode = False
With ws.Range("K1:M" & row)
.AutoFilter Field:=1, Operator:=xlFilterValues, Criteria2:=Array(2, DStart) 'filter วันที่เริ่มต้น
.AutoFilter Field:=2, Operator:=xlFilterValues, Criteria2:=Array(2, DEnd) 'filter วันที่สุดท้าย
.AutoFilter Field:=3, Operator:=xlFilterValues, Criteria1:=Name 'Filter name
End With
End Sub
ปล. ถ้า Run code Filter error ลองปรับ Format วันที่ ใน Excel กับ ใน Code ให้ตรงกันดูครับ
้ไม่รู้ตรงโจทย์รึเปล่านะครับ ลองปรับใช้ดูครับ
Sub MyFilter()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1") 'ใส่ชื่อ Sheet name ของ File ที่เราตั้ง
Dim DStart As Variant, DEnd As Variant, Name As String
Dim row As Long
'กรอก Keyword ข้อมูล ที่ต้องการจะ filter
DStart = Format(ws.Range("H1").Value, "mm/dd/yyyy") 'วันที่เริ่มต้น
DEnd = Format(ws.Range("I1").Value, "mm/dd/yyyy") 'วันที่สุดท้าย
Name = ws.Range("J1").Value 'Name
row = ws.Cells(ws.Rows.Count, "K").End(xlUp).row 'นับจำนวนแถวข้อมูลทั้งหมดใน column k (ถ้าจะนับ column ไหนก็ให้เปลี่ยนตรง K)
ws.AutoFilterMode = False
With ws.Range("K1:M" & row)
.AutoFilter Field:=1, Operator:=xlFilterValues, Criteria2:=Array(2, DStart) 'filter วันที่เริ่มต้น
.AutoFilter Field:=2, Operator:=xlFilterValues, Criteria2:=Array(2, DEnd) 'filter วันที่สุดท้าย
.AutoFilter Field:=3, Operator:=xlFilterValues, Criteria1:=Name 'Filter name
End With
End Sub
ปล. ถ้า Run code Filter error ลองปรับ Format วันที่ ใน Excel กับ ใน Code ให้ตรงกันดูครับ
แสดงความคิดเห็น
สอบถาม เรื่อง Auto Filter Excel (VBA)
ปัญหาคือ ผมต้องการ เพิ่มเงื่อนไขในการค้นหาอีก 1 ถึง 2 เงื่อนไข จะเห็นได้ว่า ผมเซ็ท lngname เป็น string ที่เซลล์ M3
อีกอย่างผมไม่ทราบวิธีเพิ่มเงื่อนไขต่อไป ว่าต้องทำอย่างไรต่อใน CODE ตรงนี้
ปล. ผมศึกษา CODE เหล่านี้จากฝรั่ง เข้าใจเล็กน้อย รบกวนทุกท่านช่วยอธิบาย และ เสนอวิธีด้วยครับ
Dim lngStart As Long, lngEnd As Long, lngname As String
lngStart = Range("L1").Value 'assume this is the start date
lngEnd = Range("L2").Value 'assume this is the end date
lngname = Range("M3").Value
Range("datena").AutoFilter field:=1, _
Criteria1:=">=" & lngStart, _
Operator:=xlAnd, _
Criteria2:="<=" & lngEnd & lngname