Page 1 of 1

xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 2:10 pm
by P1649
1). key1:=Sheets("Sample").Range("A1:A15"), order1:=xlAscending, _ทำงานปกติ แต่ไม่ทำงานเมื่อแทนค่าด้วย xlDecending
2). ไม่ต้องการให้บันทึกเงื่อนไขของ Condition Formatting ที่จะเพิ่มขึ้นทุกครั้งที่ refeash
3). ต้องการเพิ่มเสียงให้ดังมากกว่า 1 ครั้ง

ขอรบกวนอาจารย์ช่วยแนะนำด้วยครับ

Re: xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 2:27 pm
by snasui
:D คำว่า xlDecending เขียนไม่ถูกต้องครับ ที่ถูกคือ xlDescending

ส่วนกรณีที่ต้องการให้ Format ขยายตามปริมาณข้อมูล ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Col_Scale()
    'Other code
    Range("f1", Range("f" & Rows.Count).End(xlUp)).Select
    'Other code 
    Range("g1", Range("g" & Rows.Count).End(xlUp)).Select
    'Other code 
End Sub
สำหรับ Sound ลองทดสอบ Code ตามด้านล่างครับ

Code: Select all

Sub Sound()
   Dim i As Byte
   For i = 1 To 5
        x = PlaySound("c:\windows\media\chord.wav", 0, 2)
        Application.Wait Now + TimeValue("0:00:01")
   Next i
End Sub

Re: xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 3:49 pm
by P1649
1. OK
2. OK
3. มีเสียง 1 ครั้งแต่ใช้งานได้ก็ OK

4. Shortcut X = run macro / stop macro โดยไม่ต้องเปิด/ปิด ไฟล์ ทำได้อย่างไรครับ
5. ปิดไฟล์โดยไม่สนใจคำถามว่า บันทึกไฟล์แก้ไขก่อนหรือไม่ ทำได้อย่างไรครับ

Re: xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 4:26 pm
by snasui
:D ข้อ 4 หากเป็น Macro ที่เขียนใน Module ปกติสามารถเข้าไป Run โดยกดแป้น Alt+F8 ครับ

ส่วนการปิดไฟล์แบบไม่ให้ถามว่าต้องการ Save หรือไม่สามารถเขียนได้ตามด้านล่างครับ

Code: Select all

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnTime nTime, "Counter", , False
    ThisWorkbook.Close False
End Sub

Re: xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 5:44 pm
by P1649
snasui wrote::D ส่วนกรณีที่ต้องการให้ Format ขยายตามปริมาณข้อมูล ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Col_Scale()
    'Other code
    Range("f1", Range("f" & Rows.Count).End(xlUp)).Select
    'Other code 
    Range("g1", Range("g" & Rows.Count).End(xlUp)).Select
    'Other code 
End Sub
3). Sound ใช้งานได้ตามจำนวนที่ต้องการแล้วครับ
2). Format ขยายตามปริมาณข้อมูลใช้ได้ดี แต่เมื่อเข้าไปดูใน Conditional Formatting แล้วพบว่ามีคำสั่งที่เหมือนกันซ้อนกัน จำนวนตามลูปที่ทำงานและจะมากขึ้นไปเรื่อยๆ ตามตัวอย่างแนบ

Re: xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 5:48 pm
by snasui
:D ลองใช้ Code ลบ Condition Formatting ทิ้งไปก่อนแล้วสร้างใหม่ ควรปรับเองมาก่อน ติดแล้วค่อยถามกันครับ

Re: xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 9:16 pm
by P1649

Code: Select all

Sub Col_Scale()

    Dim cfColorScale As ColorScale
    
    Selection.ClearFormats

    Range("f1", Range("f" & Rows.Count).End(xlUp)).Select

    Set cfColorScale = Selection.FormatConditions.AddColorScale(ColorScaleType:=2)
    
    'cfColorScale.ColorScaleCriteria(1).FormatColor.Color = RGB(0, 0, 255)
     cfColorScale.ColorScaleCriteria(2).FormatColor.Color = RGB(255, 255, 255)
        
    Range("g1", Range("g" & Rows.Count).End(xlUp)).Select

    Set cfColorScale = Selection.FormatConditions.AddColorScale(ColorScaleType:=2)
    
     cfColorScale.ColorScaleCriteria(1).FormatColor.Color = RGB(255, 255, 255)
     cfColorScale.ColorScaleCriteria(2).FormatColor.Color = RGB(255, 255, 0)
   
End Sub
ลบ conditional formatting จนหมดแล้ว รันจากโค้ดข้างบน พบว่า formatting เพิ่มมากขึ้นทุกครั้งที่ refresh เช่นเดิม แก้ไขได้อย่างไรครับ

Re: xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 9:20 pm
by snasui
:D ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

Sub Col_Scale()

    Dim cfColorScale As ColorScale
    
    Range("f1", Range("f" & Rows.Count).End(xlUp)).Select
    
    'Clear all format
    Selection.ClearFormats

    Set cfColorScale = Selection.FormatConditions.AddColorScale(ColorScaleType:=2)
    
    'cfColorScale.ColorScaleCriteria(1).FormatColor.Color = RGB(0, 0, 255)
     cfColorScale.ColorScaleCriteria(2).FormatColor.Color = RGB(255, 255, 255)
        
    Range("g1", Range("g" & Rows.Count).End(xlUp)).Select
    
    'Clear all formats
    Selection.ClearFormats

    Set cfColorScale = Selection.FormatConditions.AddColorScale(ColorScaleType:=2)
    
    cfColorScale.ColorScaleCriteria(1).FormatColor.Color = RGB(255, 255, 255)
    cfColorScale.ColorScaleCriteria(2).FormatColor.Color = RGB(255, 255, 0)
   
End Sub

Re: xlDecending ใช้งานอย่างไรครับ

Posted: Sun May 26, 2013 9:39 pm
by P1649
ใช้งานได้แล้ว ขอบคุณอาจารย์มากครับ
Flowchart / วิธีการคิดทบทวน ผมต้องฝึกฝนอีกมากเลย :)