ผมได้ลองแก้ไขโค๊ตตามที่อาจารย์แนะนำครับ แต่มันก็ยังไม่เรียงลำดับครับ ผมไม่แน่ใจว่าวางโค๊ตผิดตำแหน่งหรือเปล่าครับ ขอให้อาจารย์ช่วยแนะนำอีกครั้งครับ ขอบคุณครับ
Code: Select all
Private Sub cmdEdite_Click()
If Application.CountA(Range("N12")) = 0 Then
MsgBox "¡ÃسÒãÊèÃÒ¤Ò"
Exit Sub
End If
Dim rSort As Range
Dim sortField As Range
Dim rg As Range
Set rg = Range("i4")
rg.Activate
If rg.Value = "" Then Exit Sub
If IsDuplicate(rg.Value) Then
MsgBox "¢éÍÁÙÅ«éÓàÃÕ¡ËÑÇ˹éÒá¡éä¢", vbCritical
Exit Sub
End If
With Worksheets("DATA1")
With .Range("a" & Rows.Count).End(xlUp).Offset(1, 0)
.Offset(0, 0).Value = rg.Offset(0, 0).Value 'àÅ¢·ÕèàÍ¡ÊÒÃ
.Offset(0, 1).Value = rg.Offset(0, 5).Value 'Çѹ·Õè
.Offset(0, 2).Value = rg.Offset(0, -5).Value 'ª×èͺÃÔÉÑ·
.Offset(0, 3).Value = rg.Offset(2, -5).Value 'ª×èͼÙéµÔ´µèÍ
.Offset(0, 4).Value = rg.Offset(4, -5).Value 'àºÍÃìâ·ÃÅÙ¡¤éÒ
.Offset(0, 5).Value = rg.Offset(2, 0).Value 'ª×èͽèÒ¢ÒÂ
.Offset(0, 6).Value = rg.Offset(4, 0).Value 'àºÍÃìâ·Ã½èÒ¢ÒÂ
.Offset(0, 7).Value = rg.Offset(2, 5).Value 'REV
.Offset(0, 8).Value = rg.Offset(8, -7).Value 'ÃÒ¡Ò÷Õè
.Offset(0, 9).Value = rg.Offset(8, -5).Value 'ÃÒ¡ÒÃ
.Offset(0, 10).Value = rg.Offset(8, 0).Value '¢¹Ò´
.Offset(0, 11).Value = rg.Offset(8, 1).Value '¢¹Ò´
.Offset(0, 12).Value = rg.Offset(10, -4).Value 'Çѵ¶Ø´Ôº
.Offset(0, 13).Value = rg.Offset(10, 5).Value 'ÃÒ¤ÒÇѵ¶Ø´Ôº
.Offset(0, 14).Value = rg.Offset(12, -3).Value 'à¤Å×ͺ
.Offset(0, 15).Value = rg.Offset(13, 3).Value 'ÃÒ¤Òà¤Å×ͺ
.Offset(0, 16).Value = rg.Offset(12, -1).Value '§Ò¹¾ÔàÈÉ
.Offset(0, 17).Value = rg.Offset(13, 5).Value 'ÃÒ¤Ò§Ò¹¾ÔàÈÉ
.Offset(0, 18).Value = rg.Offset(12, -5).Value 'ÊÕ
.Offset(0, 19).Value = rg.Offset(8, 3).Value '¨Ó¹Ç¹1
.Offset(0, 20).Value = rg.Offset(8, 4).Value 'ÃÒ¤Ò1
.Offset(0, 21).Value = rg.Offset(10, 3).Value '¨Ó¹Ç¹2
.Offset(0, 22).Value = rg.Offset(10, 4).Value 'ÃÒ¤Ò2
.Offset(0, 23).Value = rg.Offset(12, 3).Value '¨Ó¹Ç¹3
.Offset(0, 24).Value = rg.Offset(12, 4).Value 'ÃÒ¤Ò3
.Offset(0, 25).Value = rg.Offset(8, 5).Value 'ËÁÒÂà˵Ø1
.Offset(0, 26).Value = rg.Offset(15, -7).Value 'ÃÒ¡Ò÷Õè2
.Offset(0, 27).Value = rg.Offset(15, -5).Value 'ÃÒ¡ÒÃ2
.Offset(0, 28).Value = rg.Offset(15, 0).Value '¢¹Ò´2
.Offset(0, 29).Value = rg.Offset(15, 2).Value '¢¹Ò´2
.Offset(0, 30).Value = rg.Offset(17, -4).Value 'Çѵ¶Ø´Ôº2
.Offset(0, 31).Value = rg.Offset(17, 5).Value 'ÃÒ¤ÒÇѵ¶Ø´Ôº2
.Offset(0, 32).Value = rg.Offset(19, -3).Value 'à¤Å×ͺ2
.Offset(0, 33).Value = rg.Offset(20, 3).Value 'ÃÒ¤Òà¤Å×ͺ2
.Offset(0, 34).Value = rg.Offset(19, -1).Value '§Ò¹¾ÔàÈÉ2
.Offset(0, 35).Value = rg.Offset(20, 5).Value 'ÃÒ¤Ò§Ò¹¾ÔàÈÉ2
.Offset(0, 36).Value = rg.Offset(19, -5).Value 'ÊÕ2
.Offset(0, 37).Value = rg.Offset(15, 3).Value '¨Ó¹Ç¹1
.Offset(0, 38).Value = rg.Offset(15, 4).Value 'ÃÒ¤Ò1
.Offset(0, 39).Value = rg.Offset(17, 3).Value '¨Ó¹Ç¹2
.Offset(0, 40).Value = rg.Offset(17, 4).Value 'ÃÒ¤Ò2
.Offset(0, 41).Value = rg.Offset(19, 3).Value '¨Ó¹Ç¹3
.Offset(0, 42).Value = rg.Offset(19, 4).Value 'ÃÒ¤Ò3
.Offset(0, 43).Value = rg.Offset(15, 5).Value 'ËÁÒÂà˵Ø2
.Offset(0, 44).Value = rg.Offset(22, -7).Value 'ÃÒ¡Ò÷Õè3
.Offset(0, 45).Value = rg.Offset(22, -5).Value 'ÃÒ¡ÒÃ3
.Offset(0, 46).Value = rg.Offset(22, 0).Value '¢¹Ò´3
.Offset(0, 47).Value = rg.Offset(22, 8).Value '¢¹Ò´3
.Offset(0, 48).Value = rg.Offset(24, -4).Value 'Çѵ¶Ø´Ôº3
.Offset(0, 49).Value = rg.Offset(24, 5).Value 'ÃÒ¤ÒÇѵ¶Ø´Ôº3
.Offset(0, 50).Value = rg.Offset(26, -3).Value 'à¤Å×ͺ3
.Offset(0, 51).Value = rg.Offset(27, 3).Value 'à¤Å×ͺ3
.Offset(0, 52).Value = rg.Offset(26, -1).Value '§Ò¹¾ÔàÈÉ3
.Offset(0, 53).Value = rg.Offset(27, 5).Value 'ÃÒ¤Ò§Ò¹¾ÔàÈÉ3
.Offset(0, 54).Value = rg.Offset(26, -5).Value 'ÊÕ3
.Offset(0, 55).Value = rg.Offset(22, 3).Value '¨Ó¹Ç¹1
.Offset(0, 56).Value = rg.Offset(22, 4).Value 'ÃÒ¤Ò1
.Offset(0, 57).Value = rg.Offset(24, 3).Value '¨Ó¹Ç¹2
.Offset(0, 58).Value = rg.Offset(24, 4).Value '¨Ó¹Ç¹2
.Offset(0, 59).Value = rg.Offset(26, 3).Value '¨Ó¹Ç¹3
.Offset(0, 60).Value = rg.Offset(26, 4).Value 'ÃÒ¤Ò3
.Offset(0, 61).Value = rg.Offset(22, 5).Value 'ËÁÒÂà˵Ø3
.Offset(0, 62).Value = rg.Offset(29, -7).Value 'ÃÒ¡Ò÷Õè4
.Offset(0, 63).Value = rg.Offset(29, -5).Value 'ÃÒ¡ÒÃ4
.Offset(0, 64).Value = rg.Offset(29, 0).Value '¢¹Ò´4
.Offset(0, 65).Value = rg.Offset(29, 8).Value '¢¹Ò´4
.Offset(0, 66).Value = rg.Offset(31, -4).Value 'Çѵ¶Ø´Ôº4
.Offset(0, 67).Value = rg.Offset(31, 5).Value 'ÃÒ¤ÒÇѵ¶Ø´Ôº4
.Offset(0, 68).Value = rg.Offset(33, -3).Value 'à¤Å×ͺ4
.Offset(0, 69).Value = rg.Offset(34, 3).Value 'ÃÒ¤Òà¤Å×ͺ4
.Offset(0, 70).Value = rg.Offset(33, -1).Value '§Ò¹¾ÔàÈÉ4
.Offset(0, 71).Value = rg.Offset(34, 5).Value 'ÃÒ¤Ò§Ò¹¾ÔàÈÉ4
.Offset(0, 72).Value = rg.Offset(33, -5).Value 'ÊÕ4
.Offset(0, 73).Value = rg.Offset(29, 3).Value '¨Ó¹Ç¹1
.Offset(0, 74).Value = rg.Offset(29, 4).Value 'ÃÒ¤Ò1
.Offset(0, 75).Value = rg.Offset(31, 3).Value '¨Ó¹Ç¹2
.Offset(0, 76).Value = rg.Offset(31, 4).Value 'ÃÒ¤Ò2
.Offset(0, 77).Value = rg.Offset(33, 3).Value '¨Ó¹Ç¹3
.Offset(0, 78).Value = rg.Offset(33, 4).Value 'ÃÒ¤Ò3
.Offset(0, 79).Value = rg.Offset(29, 5).Value 'ËÁÒÂà˵Ø4
.Offset(0, 80).Value = rg.Offset(36, -7).Value 'ÃÒ¡Ò÷Õè5
.Offset(0, 81).Value = rg.Offset(36, -5).Value 'ÃÒ¡ÒÃ5
.Offset(0, 82).Value = rg.Offset(36, 0).Value '¢¹Ò´5
.Offset(0, 83).Value = rg.Offset(36, 8).Value '¢¹Ò´5
.Offset(0, 84).Value = rg.Offset(38, -4).Value 'Çѵ¶Ø´Ôº5
.Offset(0, 85).Value = rg.Offset(38, 5).Value 'ÃÒ¤ÒÇѵ¶Ø´Ôº5
.Offset(0, 86).Value = rg.Offset(40, -3).Value 'à¤Å×ͺ5
.Offset(0, 87).Value = rg.Offset(41, 3).Value 'ÃÒ¤Òà¤Å×ͺ5
.Offset(0, 88).Value = rg.Offset(40, -1).Value '§Ò¹¾ÔàÈÉ5
.Offset(0, 89).Value = rg.Offset(41, 5).Value 'ÃÒ¤Ò§Ò¹¾ÔàÈÉ5
.Offset(0, 90).Value = rg.Offset(40, -5).Value 'ÊÕ5
.Offset(0, 91).Value = rg.Offset(36, 3).Value '¨Ó¹Ç¹1
.Offset(0, 92).Value = rg.Offset(36, 4).Value 'ÃÒ¤Ò1
.Offset(0, 93).Value = rg.Offset(38, 3).Value '¨Ó¹Ç¹2
.Offset(0, 94).Value = rg.Offset(38, 4).Value 'ÃÒ¤Ò2
.Offset(0, 95).Value = rg.Offset(40, 3).Value '¨Ó¹Ç¹3
.Offset(0, 96).Value = rg.Offset(40, 4).Value 'ÃÒ¤Ò3
.Offset(0, 97).Value = rg.Offset(36, 5).Value 'ËÁÒÂà˵Ø5
End With
End With
Range("n12,N14,N16,N19,N21,n23,n26,n28,n30,n33,n35,n37,n40,n42,n44").ClearContents
Set rSort = Sheets("DATA1").Range("a1").CurrentRegion
Set sortField = rSort.Offset(1, 0).Resize(, 1)
ActiveWorkbook.Worksheets("DATA1").sort.SortFields.Clear
ActiveWorkbook.Worksheets("DATA1").sort.SortFields.Add Key:=sortField, _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("DATA1").sort
.SetRange rSort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets("ÍÍ¡ãºàʹÍÃÒ¤Ò§Ò¹").Select
End Sub
Private Function IsDuplicate(c) As Boolean
Dim rg As Range
Set rg = Worksheets("DaTa1").Range("A:A")
If rg.Find(c, LookIn:=xlValues, Lookat:=xlWhole) Is Nothing Then
IsDuplicate = False
Else
IsDuplicate = True
End If
End Function