Page 1 of 1

Condition format by VBA

Posted: Thu Apr 04, 2013 9:38 am
by poipoi
ผมมีปัญหาเกี่ยวกับการใส่สีตัวหนังสือโดยใช้ VBA ครับ

โดยข้างต้นผมได้ทดลองใช้ Record Macro แล้ว พอก็รันใหม่กับติด Debug ตรง code สีที่ Macro บันทึกไว้ให้ครับ

จึงอยากจะมาขอความรู้จากอาจารย์และพี่ๆในบอร์ดแห่งนี้ช่วยแนะนำเกี่ยวกับการใช้งาน Condition Format by VBA ครับ

ปล. ผมแนบ code ที่ได้ record มาให้ดูครับ

Code: Select all

    Columns("I:J").Select
    Range("I2").Activate
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
        Formula1:="=0"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .Color = -16383844
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    Range("A2").Select
ขอบคุณครับ

Re: Condition format by VBA

Posted: Thu Apr 04, 2013 9:39 am
by poipoi
โดนเงื่อนไขที่ต้องการคือ ที่คอลั่มน์ I : J หากค่ามีน้อยกว่า 0 ให้ใส่สีแดงที่ตัวเลขครับ

โดยเรียงลำดับการใช้ function ได้เป็น Conditionformat > Lessthan > 0....Red Text ครับ

Re: Condition format by VBA

Posted: Thu Apr 04, 2013 10:05 am
by snasui
:D การกำหนดคอลัมน์ I:J ให้มีค่าลบเป็นสีแดงสามารถใช้ Code ตามด้านล่างครับ

Code: Select all

' Other code
Range("I:J").NumberFormat = "#,##0.00;[red]#,##0.00"
' Other code

Re: Condition format by VBA

Posted: Thu Apr 04, 2013 10:11 am
by poipoi
ขอโทษทีครับผมลืมอีกเงื่อนไขคือ

ใช้งานบน Pivot Table ครับหากนำสิ่งที่อาจารย์แนะนำไปแทนที่ค่าเดิมมันจะทำให้ค่าที่ถูกเซ็ตไว้กลายเป็น 0.01 - 1 ครับ

ผมได้ทำการตั้งค่า Diff ระหว่างปีเอาไว้ ซึ่งอยากให้ ค่าที่ Diff กันนั้นหากติดลบให้ใส่สีแดงครับ

รบกวนอีกทีครับ

Re: Condition format by VBA

Posted: Thu Apr 04, 2013 10:37 am
by snasui
:D ไม่เข้าใจครับ แนบไฟล์ตัวอย่าง แสดงคำตอบที่ต้องการมาด้วยครับ

Re: Condition format by VBA

Posted: Thu Apr 04, 2013 10:57 am
by poipoi
จากไฟล์ที่แนบ ที่ ("I:J") จะเห็น format ของ คอลั่มนั้นจะแสดงเป็นแบบ Percentage หากใช้ code ตามที่อาจารย์แนะนำมามันก้จะกลายเป็น 1 ครับ

ผมอยากให้มันคงค่า format ตัวนี้เอาไว้ครับ

Re: Condition format by VBA

Posted: Thu Apr 04, 2013 11:13 am
by snasui
:D ใจความสำคัญคือด้านล่าง
poipoi wrote:จากไฟล์ที่แนบ ที่ ("I:J") จะเห็น format ของ คอลั่มนั้นจะแสดงเป็นแบบ Percentage
หากไม่แจ้งมาเช่นนี้ก็จะถือว่าเป็นการจัด Format ตัวเลขปกติ

กรณีเป็นการจัด Format เป็น % ลองปรับ Code เป็นตามด้านล่างครับ

Code: Select all

' Other code
Range("I:J").NumberFormat = "[>=0]0.00%;[<0][red]-0.00%"
' Other code

Re: Condition format by VBA

Posted: Thu Apr 04, 2013 11:26 am
by poipoi
ได้ตามที่ต้องการแล้วครับ

ขออภัยหากการสื่อสารของผมทำให้ต้องยุ่งยากครับ

ขอบคุณอีกครั้งครับ