Page 1 of 1

ขอคำปรึกษาเนื่องจากทำ Macro เพื่อกรองค่าที่ต้องการ และลบค่าที่ต้องการออกไป

Posted: Thu Apr 02, 2020 3:21 pm
by GobWeravong
ขอคำปรึกษาเนื่องจากทำ Macro เพื่อกรองค่าที่ต้องการ และลบค่าที่ต้องการออกไป
แต่พอเปลี่ยน Notebook ใหม่ ทำให้ไม่สามารถใช้ไฟล์ Macro ดังกล่าวได้ มันจะลบตัวที่ไม่ได้กรองไปด้วยครับ
จากตัวอย่างด้านล่าง(และไฟล์แนบ) ผมใส่ Filter ที่ Row1(A-D) แล้วไปกรองที่ B เพื่อให้แสดง XX และ AA2
แล้วทำการลบ Row ที่มี XX และ AA2 ออกไป(นั่นก็คือ ลบตัวที่เราทำการกรองออกไป)
แต่ผลลัพท์ที่ได้ คือ Row ที่ AA1 หายไปด้วย
(Note: ค่าในไฟล์สมมุติขึ้นครับ แต่ค่าในความเป็นจริงอาจจะมี AA1 หลายๆค่า และข้อมูลอาจจะมากกว่า 10 บรรทัด)
ขอบคุณมากๆครับ
ต้นฉบับ
A B C D
XX XX XX XX
1 AA1 A1 New1
2 AA2 A2 New2
3 AA3 A3 New3
4 AA4 A4 New4
5 AA5 A5 New5
6 AA6 A6 New6
7 AA7 A7 New7
8 AA8 A8 New8
9 AA9 A9 New9
10 AA10 A10 New10

ผลลัพท์คือ (Row ที่ AA1 จะต้องมี)
A B C D
1 AA1 A1 New1
3 AA3 A3 New3
4 AA4 A4 New4
5 AA5 A5 New5
6 AA6 A6 New6
7 AA7 A7 New7
8 AA8 A8 New8
9 AA9 A9 New9
10 AA10 A10 New10

Re: ขอคำปรึกษาเนื่องจากทำ Macro เพื่อกรองค่าที่ต้องการ และลบค่าที่ต้องการออกไป

Posted: Thu Apr 02, 2020 3:22 pm
by GobWeravong
ในเครื่องผมอาจจะเป็นแบบที่อธิบาย แต่บางเครื่องอาจจะไม่เป็นก็ได้ครับ

Re: ขอคำปรึกษาเนื่องจากทำ Macro เพื่อกรองค่าที่ต้องการ และลบค่าที่ต้องการออกไป

Posted: Thu Apr 02, 2020 8:52 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

'Other code
 Rows("1:1").Select
 Selection.AutoFilter
 ActiveSheet.Range("$A$1:$D$50").AutoFilter Field:=2, Criteria1:="=*XX*", _
     Operator:=xlOr, Criteria2:="=*AA2*"
 Rows("2:2").Select
 Range(Selection, Selection.End(xlDown)).SpecialCells( _
     xlCellTypeVisible).Select
 Selection.Delete Shift:=xlUp
 Range("A1").Select
 ActiveSheet.ShowAllData
 Range("A1").Select
 Selection.AutoFilter
 Range("A1").Select
'Other code