Page 1 of 1

รวมมาโคร 2 ตัว เข้าด้วยกัน

Posted: Sun Oct 23, 2016 3:39 pm
by yangkodza
มาโครอันที่ 1

Code: Select all

Sub เก่ง()
    Range("A6:BA6").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("อันดับคนเก่ง").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("อันดับคนเก่ง").Sort.SortFields.Add Key:=Range( _
        "BA6:BA45"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("อันดับคนเก่ง").Sort
        .SetRange Range("A6:BA45")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWindow.SmallScroll Down:=-48
    Range("BB6").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWindow.SmallScroll Down:=-36
    With Selection.Font
        .Color = -16776961
        .TintAndShade = 0
    End With
    Range("BC6").Select
End Sub
มาโครอันที่ 2

Code: Select all

Sub เรียงปกติ()
    ActiveWindow.SmallScroll Down:=-6
    Range("A6:BA6").Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("อันดับคนเก่ง").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("อันดับคนเก่ง").Sort.SortFields.Add Key:=Range( _
        "A6:A45"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("อันดับคนเก่ง").Sort
        .SetRange Range("A6:BA45")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWindow.SmallScroll Down:=-27
    Range("BB6").Select
    Range(Selection, Selection.End(xlDown)).Select
    With Selection.Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
    ActiveWindow.SmallScroll Down:=-36
    Range("BC6").Select
End Sub
จุดประสงค์ต้องการสร้างให้อยู่ในปุ่มกดเดียวกันไม่ต้องการแยกปุ่มครับ
กดครั้งแรกเรียงคนเก่ง กดอีกครั้งจัดเรียงตามเลขที่ปกติครับ
ขอบคุณมากครับ

Re: รวมมาโคร 2 ตัว เข้าด้วยกัน

Posted: Sun Oct 23, 2016 3:46 pm
by snasui
กดครั้งแรกเรียงคนเก่ง กดอีกครั้งจัดเรียงตามเลขที่ปกติครับ
:D หลักการคือ บันทึกค่านั้นไว้ในเซลล์ใด ๆ แล้วค่อยไปเรียกใช้ Procedure

เช่นเมื่อคลิกปุ่มแล้วให้ตรวจสอบว่า A1 ว่าเป็น True หรือไม่ หากใช่ก็ให้ให้เรียก Procedure เก่ง แล้วเปลี่ยนค่า A1 เป็น False และหาก A1 เป็น False ก้ให้เรียก Procedure เรียงปกติ แล้วเปลียน A1 เป็น True เช่นนี้ครับ

ตัวอย่าง

Code: Select all

Sub Test0()
   if [a1].value = "" then [a1] = true
   if [a1].value = True
      Call เก่ง
      [a1].value = false
   else
      Call เรียงปกติ
      [a1].value = true	    
   end if
End Sub

Re: รวมมาโคร 2 ตัว เข้าด้วยกัน

Posted: Sun Oct 23, 2016 9:26 pm
by yangkodza
snasui wrote: :D หลักการคือ บันทึกค่านั้นไว้ในเซลล์ใด ๆ แล้วค่อยไปเรียกใช้ Procedure
การบันทึกค่าไว้ในเซลล์ใดๆ ต้องทำแบบไหนครับ
รบกวนชี้แนะด้วยครับ

Re: รวมมาโคร 2 ตัว เข้าด้วยกัน

Posted: Sun Oct 23, 2016 10:53 pm
by snasui
:D ผมเขียนตัวอย่าง Code ไว้ให้เรียบร้อยแล้วแล้วลองศึกษาตามนั้นครับ

Re: รวมมาโคร 2 ตัว เข้าด้วยกัน

Posted: Thu Oct 27, 2016 10:15 am
by yangkodza
snasui wrote::D ผมเขียนตัวอย่าง Code ไว้ให้เรียบร้อยแล้วแล้วลองศึกษาตามนั้นครับ
ขอบคุณครับ ทำได้แล้วครับ :D