#12
Post
by StartlearningVBA » Wed Feb 16, 2011 10:31 am
จากนั้น มาดูเงื่อนไขแรก คือ ต้องการเอาค่าที่ติดลบมากที่สุดมาทำก่อน โดยดูที่ Sheet "data1"
ติดฟิวเตอร์ก่อนที่แถวที่ 5 แล้วทำการ Sort by A to Z ใน Colum "N"
เลือก ค่า Code ในช่อง B6 คือแถวแรกเพราะติดลบมากสุด (แต่ตามตัวอย่างขอเลื่อนไป B7 เพราะ เดี๋ยวพอไป sheet"box" จะมองเป็นภาพไม่ชัดเจน)
Sheets("data1").Select
Rows("5:5").Select
Selection.AutoFilter
ActiveWorkbook.Worksheets("data1").AutoFilter.Sort.SortFields.Add Key:=Range( _
"N5"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("data1").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
เมื่อได้ Code มาแล้ว Copy code นั้นไปหา find หาใน sheet"box"
Range("B7").Select
Selection.Copy
Sheets("box").Select
Rows("1:1").Select
ActiveSheet.Range("$A$1:$Y$100").AutoFilter Field:=5, Criteria1:= _
"=96628634", Operator:=xlAnd (อันนี้ฟิวเตอร์หา code ใน colum"e")
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("box").AutoFilter.Sort.SortFields.Clear (แล้วเคลียร์ฟิวเตอร์ออกมาก่อน)
ActiveWorkbook.Worksheets("box").AutoFilter.Sort.SortFields.Add Key:=Range( _
"J1:J100"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("box").AutoFilter.Sort (จากนั้น มาทำการ Sort by A to Zที่ colum"j")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
จากนัั้น เลือก Box ที่อยู่บนสุด คือ "M53" ใน Sheet "box" นี่แหละ
Range("M53").Select
Selection.Copy
Application.CutCopyMode = False
Selection.AutoFilter (จากนั้นทำการ ฟิวเตอร์ เอาเฉพาะ Box no. นี้ มา)
Selection.Copy
ActiveSheet.Range("$A$1:$Y$100").AutoFilter Field:=13, Criteria1:= _
"=FCIU8103005", Operator:=xlAnd
Range("A1").Select (จากนั้น ทำการ Copy ข้อมูที่โชว์ทั้งหมดนี้ ไปวางใน Sheet "TempBox"คือจะได้ code ทั้งหมดที่มีอยู่ใน box นั้นมา)
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy