#11
by natthaporn » Wed Jan 23, 2013 12:38 pm
ก่อนอื่นดิฉนต้องขอโทษด้วยที่รบกวนอาจารย์บ่อยมากเลยคะ ดิฉันมีประเด็นเกิดขึ้นอีกแล้วคะ พยายามแก้ code และหาสาเหตุตั้งแต่เช้าแล้วแต่ก็หาไม่พบ ประเด็นมีดังนี้คะ
ที่ sheet "Data-TPA" เมื่อเลือก "CENTRAL","NORTHEAST","EAST" ที่ cell E2 ข้อมูลที่ส่งมาที่ sheet ต่างๆ เหล่านี้ เป็นข้อมูลชุดเดียวกัน คือเป็นข้อมูลของ "SOUTH" แต่พอเลือก "SOUTH" ข้อมูลที่ปรากฎที่ sheet "SOUTH" กลายเป็นข้อมูลของ "EAST"
ดิฉันขอรบกวนอาจารย์ชี้แนะด้วยคะ code มีดังนี้คะ
Code: Select all
Private Sub RecordTPA_Click()
'ActiveSheet.Range("STPAValue").Select
'Selection.ClearContents
Range("TPASort").Select
ActiveWorkbook.Worksheets("Data-TPA").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Data-TPA").Sort.SortFields.Add Key:=Range( _
"TTPASection"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Data-TPA").Sort
.SetRange Range("TPASort")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("TTPA7") = "=TPARegion2"
ActiveSheet.Range("TTPA1") = "=TPATRIM1"
ActiveSheet.Range("TTPA3") = "=TPARevSection"
ActiveSheet.Range("TTPA2") = "=TPAVLOOKUP1"
ActiveSheet.Range("TTPA5") = "=TPAVLOOKUP2"
ActiveSheet.Range("TTPA6") = "=TPATRIM2"
ActiveSheet.Range("TTPA3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ActiveSheet.Range("STPAValue").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
If ActiveSheet.Range("TPARegion") = "CENTRAL" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "c") = 0 Then
MsgBox "Can't found ""CENTRAL"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=c", _
Operator:=xlAnd
End If
If ActiveSheet.Range("TPARegion") = "NORTH" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "n") = 0 Then
MsgBox "Can't found ""NORTH"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=n", _
Operator:=xlAnd
End If
If ActiveSheet.Range("TPARegion") = "NORTHEAST" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "ne") = 0 Then
MsgBox "Can't found ""NORTHEAST"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=ne", _
Operator:=xlAnd
End If
If ActiveSheet.Range("TPARegion") = "EAST" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "e") = 0 Then
MsgBox "Can't found ""EAST"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=e", _
Operator:=xlAnd
End If
If ActiveSheet.Range("TPARegion") = "SOUTH" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "s") = 0 Then
MsgBox "Can't found ""SOUTH"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=s", _
Operator:=xlAnd
End If
Application.Goto Reference:="STPAAC"
Selection.Copy
Application.Goto Reference:="TTPAAC"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPAAC"
Application.Goto Reference:="STPAAE"
Selection.Copy
Application.Goto Reference:="TTPAAE"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPAAE"
Application.Goto Reference:="STPACB"
Selection.Copy
Application.Goto Reference:="TTPACB"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPACB"
Application.Goto Reference:="STPAPMA"
Selection.Copy
Application.Goto Reference:="TTPAPMA"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPAPMA"
Application.Goto Reference:="STPADT"
Selection.Copy
Application.Goto Reference:="TTPADT"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPADT"
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Range("D2").Select
Application.ScreenUpdating = True
End Sub
- Attachments
-
VBASendData4.xlsm
- (256.95 KiB) Downloaded 27 times
ก่อนอื่นดิฉนต้องขอโทษด้วยที่รบกวนอาจารย์บ่อยมากเลยคะ ดิฉันมีประเด็นเกิดขึ้นอีกแล้วคะ พยายามแก้ code และหาสาเหตุตั้งแต่เช้าแล้วแต่ก็หาไม่พบ ประเด็นมีดังนี้คะ
ที่ sheet "Data-TPA" เมื่อเลือก "CENTRAL","NORTHEAST","EAST" ที่ cell E2 ข้อมูลที่ส่งมาที่ sheet ต่างๆ เหล่านี้ เป็นข้อมูลชุดเดียวกัน คือเป็นข้อมูลของ "SOUTH" แต่พอเลือก "SOUTH" ข้อมูลที่ปรากฎที่ sheet "SOUTH" กลายเป็นข้อมูลของ "EAST"
ดิฉันขอรบกวนอาจารย์ชี้แนะด้วยคะ code มีดังนี้คะ
[code]
Private Sub RecordTPA_Click()
'ActiveSheet.Range("STPAValue").Select
'Selection.ClearContents
Range("TPASort").Select
ActiveWorkbook.Worksheets("Data-TPA").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Data-TPA").Sort.SortFields.Add Key:=Range( _
"TTPASection"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Data-TPA").Sort
.SetRange Range("TPASort")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("TTPA7") = "=TPARegion2"
ActiveSheet.Range("TTPA1") = "=TPATRIM1"
ActiveSheet.Range("TTPA3") = "=TPARevSection"
ActiveSheet.Range("TTPA2") = "=TPAVLOOKUP1"
ActiveSheet.Range("TTPA5") = "=TPAVLOOKUP2"
ActiveSheet.Range("TTPA6") = "=TPATRIM2"
ActiveSheet.Range("TTPA3").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
ActiveSheet.Range("STPAValue").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
If ActiveSheet.Range("TPARegion") = "CENTRAL" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "c") = 0 Then
MsgBox "Can't found ""CENTRAL"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=c", _
Operator:=xlAnd
End If
If ActiveSheet.Range("TPARegion") = "NORTH" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "n") = 0 Then
MsgBox "Can't found ""NORTH"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=n", _
Operator:=xlAnd
End If
If ActiveSheet.Range("TPARegion") = "NORTHEAST" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "ne") = 0 Then
MsgBox "Can't found ""NORTHEAST"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=ne", _
Operator:=xlAnd
End If
If ActiveSheet.Range("TPARegion") = "EAST" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "e") = 0 Then
MsgBox "Can't found ""EAST"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=e", _
Operator:=xlAnd
End If
If ActiveSheet.Range("TPARegion") = "SOUTH" Then
If Application.CountIf(Sheets("Data-TPA").Range("B:B"), "s") = 0 Then
MsgBox "Can't found ""SOUTH"" in your data."
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Exit Sub
End If
Else
Range("TPAFilter").Select
Selection.AutoFilter
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1, Criteria1:="=s", _
Operator:=xlAnd
End If
Application.Goto Reference:="STPAAC"
Selection.Copy
Application.Goto Reference:="TTPAAC"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPAAC"
Application.Goto Reference:="STPAAE"
Selection.Copy
Application.Goto Reference:="TTPAAE"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPAAE"
Application.Goto Reference:="STPACB"
Selection.Copy
Application.Goto Reference:="TTPACB"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPACB"
Application.Goto Reference:="STPAPMA"
Selection.Copy
Application.Goto Reference:="TTPAPMA"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPAPMA"
Application.Goto Reference:="STPADT"
Selection.Copy
Application.Goto Reference:="TTPADT"
Selection.PasteSpecial Paste:=xlPasteValues
Application.Goto Reference:="STPADT"
ActiveSheet.Range("STPAFilter").AutoFilter Field:=1
Selection.AutoFilter
Range("D2").Select
Application.ScreenUpdating = True
End Sub
[/code]