Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

การใช้ มาโคร VBA เป็นวิธีที่มีประสิทธิภาพ รวดเร็วที่สุด และปลอดภัยที่สุดในการรันการดำเนินการใดๆ ใน Excel ในบทความนี้ เราจะแสดงให้คุณเห็นว่าสีฟอนต์ในชุดข้อมูลของคุณเป็นสีแดงหรือไม่ แล้วจะได้ผลลัพธ์บางอย่างใน Excel โดยใช้ VBA ได้อย่างไร .

ดาวน์โหลดสมุดงาน

คุณสามารถดาวน์โหลดเวิร์กบุ๊ก Excel แบบฝึกหัดฟรีได้จากที่นี่

6 วิธีในการตรวจสอบว่าสีแบบอักษรเป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์โดยใช้ VBA ใน Excel

ดูชุดข้อมูลต่อไปนี้ซึ่งมีค่าบางค่าที่มีสีแบบอักษรเป็นสีแดง ในส่วนนี้ เราจะพูดถึงขั้นตอนทีละขั้นตอน ถ้าสีฟอนต์เป็นสีแดง แล้วจะได้ผลลัพธ์บางอย่างใน Excel ได้อย่างไร

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

1. หากสีแบบอักษรเป็นสีแดง ให้ส่งคืนบางคำใน Excel

เราต้องการคืน ใช่ ถ้าสีแบบอักษรเป็นสีแดงและไม่ ถ้าสีฟอนต์ไม่ใช่สีแดง เรามาดูวิธีการทำสิ่งนั้นกับ Excel VBA .

ขั้นตอน:

  • กด Alt + F11 บนแป้นพิมพ์ของคุณหรือไปที่แท็บ นักพัฒนา -> Visual Basic เพื่อเปิด Visual Basic Editor .

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

  • ในหน้าต่างรหัสป๊อปอัป จากแถบเมนู ให้คลิก แทรก -> โมดูล .

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

  • คัดลอกโค้ดต่อไปนี้แล้ววางลงในหน้าต่างโค้ด
Function FontColorRed(target As Range)
    Application.Volatile
    If target.Font.Color = 255 Then
    FontColorRed = "Yes"
    Else
    FontColorRed = "No"
    End If
End Function

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

นี่ไม่ใช่ขั้นตอนย่อยสำหรับ VBA โปรแกรมที่จะรัน นี่คือการสร้าง User Defined Function (UDF) . ดังนั้น หลังจากที่เขียนโค้ดแล้ว แทนที่จะคลิกปุ่มเรียกใช้ จากแถบเมนู คลิกบันทึก .

  • กลับไปที่แผ่นงานที่สนใจและเขียนฟังก์ชันที่คุณเพิ่งสร้างขึ้นด้วย VBA รหัส (ฟังก์ชัน FontColorRed ในบรรทัดแรกของโค้ด) และในวงเล็บของ FontColorRed ฟังก์ชัน ส่ง หมายเลขอ้างอิงเซลล์ ที่คุณต้องการแปลงเป็นตัวอักษร (ในกรณีของเรา เราผ่าน เซลล์ C5 ในวงเล็บ)

ดังนั้นสูตรสุดท้ายของเราจึงอ้างถึง

=FontColorRed(C5)

  • กด Enter .

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

คุณจะได้รับใช่ ถ้าสีแบบอักษรใน เซลล์ C5 เป็นสีแดง มิฉะนั้น จะได้ ไม่ . ในกรณีของเรา สีแบบอักษรของข้อความภายใน เซลล์ C5 ไม่แดง เราก็ ไม่

  • ตอนนี้ลากแถวลงโดย เติมแฮนเดิล เพื่อใช้ UDF ไปยังเซลล์ที่เหลือและคุณจะได้รับ ใช่ ข้างเซลล์ที่เก็บข้อความที่มีสีฟอนต์สีแดง

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

2. ส่งคืนรหัสสีหากสีแบบอักษรเป็นสีแดง

ที่นี่ เราจะเรียนรู้วิธีแยกรหัสสีตามสีแบบอักษรสีแดงใน Excel ด้วย VBA .

ขั้นตอน:

  • เหมือนเมื่อก่อน เปิด Visual Basic Editor จาก นักพัฒนา แท็บและ แทรก โมดูล ในหน้าต่างโค้ด
  • ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
Function ColorCode(rng As Range)
    ColorCode = rng.Font.ColorIndex
End Function

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

  • ตอนนี้ดังที่แสดงไว้ก่อนหน้านี้ โทร รหัสสี UDF จากชุดข้อมูล ส่งหมายเลขอ้างอิงเซลล์ (เช่น C5 ) เป็นอาร์กิวเมนต์ กด Enter

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

คุณจะได้รับรหัสสีที่เกี่ยวข้องเป็นค่าส่งคืน

  • ตอนนี้ลากแถวลงโดย เติมแฮนเดิล เพื่อใช้ UDF ไปยังเซลล์ที่เหลือเพื่อรับรหัสของสีฟอนต์สีแดง

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

3. หากสีแบบอักษรเป็นสีแดง ให้ส่งคืนดัชนีใน Excel

ที่นี่ เราจะเรียนรู้วิธีคืนค่าหมายเลขดัชนีตามสีแบบอักษรสีแดงใน Excel ด้วย VBA .

ขั้นตอน:

  • เหมือนเมื่อก่อน เปิด Visual Basic Editor จาก นักพัฒนา แท็บและ แทรก โมดูล ในหน้าต่างโค้ด
  • ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
Function IndexColor(cell As Range)
        IndexColor = cell.Font.Color
End Function

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

  • ตอนนี้ดังที่แสดงไว้ก่อนหน้านี้ โทร IndexColor UDF จากชุดข้อมูล ส่งหมายเลขอ้างอิงเซลล์ (เช่น C5 ) เป็นอาร์กิวเมนต์ กด Enter

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

คุณจะได้รับหมายเลขดัชนีที่เกี่ยวข้องของสีแบบอักษรเป็นค่าส่งคืน

  • ตอนนี้ลากแถวลงโดย เติมแฮนเดิล เพื่อใช้ UDF ไปยังเซลล์ที่เหลือเพื่อรับหมายเลขดัชนีของสีฟอนต์สีแดง

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

เซลล์ที่เก็บข้อความที่มีแบบอักษรสีแดงจะส่งกลับ 255 เป็นเลขดัชนีของสี สีแดง คือ 255 .

4. ส่งคืนรหัส RGB หากสีแบบอักษรเป็นสีแดงใน Excel

ที่นี่เราจะเรียนรู้วิธีรับโค้ด RGB ตามสีฟอนต์สีแดงใน Excel ด้วย VBA .

ขั้นตอน:

  • เหมือนเมื่อก่อน เปิด Visual Basic Editor จาก นักพัฒนา แท็บและ แทรก โมดูล ในหน้าต่างโค้ด
  • ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
Function FontRGB(cell As Range)
    Dim iColorIndex As Long
    Dim iColor As Variant
    iColorIndex = cell.Font.Color
    iColor = iColorIndex Mod 256
    iColor = iColor & ", "
    iColor = iColor & (iColorIndex \ 256) Mod 256
    iColor = iColor & ", "
    iColor = iColor & (iColorIndex \ 256 \ 256) Mod 256
    FontRGB = iColor
End Function

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

  • ตอนนี้ดังที่แสดงไว้ก่อนหน้านี้ โทร FontRGB UDF จากชุดข้อมูล ส่งหมายเลขอ้างอิงเซลล์ (เช่น C5 ) เป็นอาร์กิวเมนต์ กด Enter

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

คุณจะได้รับโค้ด RGB ที่เกี่ยวข้องของสีฟอนต์เป็นค่าส่งคืน

  • ตอนนี้ลากแถวลงโดย เติมแฮนเดิล เพื่อใช้ UDF ไปยังเซลล์ที่เหลือเพื่อรับโค้ด RGB ของสีฟอนต์สีแดง

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

เซลล์ที่เก็บข้อความที่มีแบบอักษรสีแดงจะส่งกลับ 255,0,0 เป็นรหัส RGB ของสี สีแดง คือ 255,0,0 .

5. หากสีแบบอักษรเป็นสีแดง ให้ไฮไลต์เซลล์

หากคุณต้องการเน้นเซลล์ที่มีข้อความที่มีสีฟอนต์เป็นสีแดง ให้อ่านบทความต่อไปเพื่อทราบวิธีการทำ

ขั้นตอน:

  • เหมือนเมื่อก่อน เปิด Visual Basic Editor จาก นักพัฒนา แท็บและ แทรก โมดูล ในหน้าต่างโค้ด
  • ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
Sub HighlightCell()    
    Set ws = Sheets("Highlight") 'set the worksheet    
    For r = 1 To 104
        For c = 1 To 36
            If (ws.Cells(r, c).Font.Color = 255) Then
                'set the desired color index
                ws.Cells(r, c).Interior.ColorIndex = 34
            End If
        Next c
    Next r
End Sub

ตอนนี้รหัสของคุณพร้อมใช้งานแล้ว

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

  • กด F5 บนแป้นพิมพ์หรือจากแถบเมนู ให้เลือก เรียกใช้ -> เรียกใช้ Sub/UserForm . คุณยังสามารถคลิกที่ไอคอน Play ขนาดเล็ก ในแถบเมนูย่อยเพื่อเรียกใช้มาโคร

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

คุณจะเห็นว่าขณะนี้เซลล์ที่มีแบบอักษรสีแดงถูกเน้น

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

6. เปลี่ยนสีแบบอักษรหากสีแบบอักษรเป็นสีแดง

หากคุณต้องการเปลี่ยนสีฟอนต์สีแดงกลับเป็นสีเริ่มต้น ให้ทำตามขั้นตอนที่แสดงด้านล่าง

ขั้นตอน:

  • เหมือนเมื่อก่อน เปิด Visual Basic Editor จาก นักพัฒนา แท็บและ แทรก โมดูล ในหน้าต่างโค้ด
  • ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
Sub ChangeFontColor()
    With Application.FindFormat.Font
        .Subscript = False
        .Color = 255
        .TintAndShade = 0
    End With
    With Application.ReplaceFormat.Font
        .Subscript = False
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
    End With
    Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
    xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
End Sub

ตอนนี้รหัสของคุณพร้อมใช้งานแล้ว

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

  • วิ่ง มาโคร

VBA เพื่อตรวจสอบว่าสีฟอนต์เป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์ใน Excel

ค่าที่มีสีแบบอักษรสีแดงจะเปลี่ยนกลับเป็นสีแบบอักษรเริ่มต้น

บทสรุป

บทความนี้แสดงให้คุณเห็นว่าสีฟอนต์ของค่าในชุดข้อมูลของคุณเป็นสีแดงหรือไม่ แล้วจะได้ผลลัพธ์บางอย่างใน Excel โดยใช้ VBA ได้อย่างไร . ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับคุณมาก อย่าลังเลที่จะถามคำถามใด ๆ เกี่ยวกับหัวข้อนี้

คุณอาจต้องการสำรวจด้วย

  • VBA เพื่อลบอักขระออกจากสตริงใน Excel (7 วิธี)
  • วิธีใช้ VBA เพื่อลบแถวว่างใน Excel
  • มาโคร VBA เพื่อแทรกแถวใน Excel ตามเกณฑ์ (4 วิธี)
  • วิธีการนับแถวด้วย VBA ใน Excel (5 วิธี)
  • VBA เพื่อลบแถวทั้งหมดตามค่าของเซลล์ใน Excel (3 วิธี)