การใช้ มาโคร VBA เป็นวิธีที่มีประสิทธิภาพ รวดเร็วที่สุด และปลอดภัยที่สุดในการรันการดำเนินการใดๆ ใน Excel ในบทความนี้ เราจะแสดงให้คุณเห็นว่าสีฟอนต์ในชุดข้อมูลของคุณเป็นสีแดงหรือไม่ แล้วจะได้ผลลัพธ์บางอย่างใน Excel โดยใช้ VBA ได้อย่างไร .
ดาวน์โหลดสมุดงาน
คุณสามารถดาวน์โหลดเวิร์กบุ๊ก Excel แบบฝึกหัดฟรีได้จากที่นี่
6 วิธีในการตรวจสอบว่าสีแบบอักษรเป็นสีแดงหรือไม่ จากนั้นส่งคืนผลลัพธ์โดยใช้ VBA ใน Excel
ดูชุดข้อมูลต่อไปนี้ซึ่งมีค่าบางค่าที่มีสีแบบอักษรเป็นสีแดง ในส่วนนี้ เราจะพูดถึงขั้นตอนทีละขั้นตอน ถ้าสีฟอนต์เป็นสีแดง แล้วจะได้ผลลัพธ์บางอย่างใน Excel ได้อย่างไร
1. หากสีแบบอักษรเป็นสีแดง ให้ส่งคืนบางคำใน Excel
เราต้องการคืน ใช่ ถ้าสีแบบอักษรเป็นสีแดงและไม่ ถ้าสีฟอนต์ไม่ใช่สีแดง เรามาดูวิธีการทำสิ่งนั้นกับ Excel VBA .
ขั้นตอน:
- กด Alt + F11 บนแป้นพิมพ์ของคุณหรือไปที่แท็บ นักพัฒนา -> Visual Basic เพื่อเปิด Visual Basic Editor .
- ในหน้าต่างรหัสป๊อปอัป จากแถบเมนู ให้คลิก แทรก -> โมดูล .
- คัดลอกโค้ดต่อไปนี้แล้ววางลงในหน้าต่างโค้ด
Function FontColorRed(target As Range)
Application.Volatile
If target.Font.Color = 255 Then
FontColorRed = "Yes"
Else
FontColorRed = "No"
End If
End Function
นี่ไม่ใช่ขั้นตอนย่อยสำหรับ VBA โปรแกรมที่จะรัน นี่คือการสร้าง User Defined Function (UDF) . ดังนั้น หลังจากที่เขียนโค้ดแล้ว แทนที่จะคลิกปุ่มเรียกใช้ จากแถบเมนู คลิกบันทึก .
- กลับไปที่แผ่นงานที่สนใจและเขียนฟังก์ชันที่คุณเพิ่งสร้างขึ้นด้วย VBA รหัส (ฟังก์ชัน FontColorRed ในบรรทัดแรกของโค้ด) และในวงเล็บของ FontColorRed ฟังก์ชัน ส่ง หมายเลขอ้างอิงเซลล์ ที่คุณต้องการแปลงเป็นตัวอักษร (ในกรณีของเรา เราผ่าน เซลล์ C5 ในวงเล็บ)
ดังนั้นสูตรสุดท้ายของเราจึงอ้างถึง
=FontColorRed(C5)
- กด Enter .
คุณจะได้รับใช่ ถ้าสีแบบอักษรใน เซลล์ C5 เป็นสีแดง มิฉะนั้น จะได้ ไม่ . ในกรณีของเรา สีแบบอักษรของข้อความภายใน เซลล์ C5 ไม่แดง เราก็ ไม่
- ตอนนี้ลากแถวลงโดย เติมแฮนเดิล เพื่อใช้ UDF ไปยังเซลล์ที่เหลือและคุณจะได้รับ ใช่ ข้างเซลล์ที่เก็บข้อความที่มีสีฟอนต์สีแดง
2. ส่งคืนรหัสสีหากสีแบบอักษรเป็นสีแดง
ที่นี่ เราจะเรียนรู้วิธีแยกรหัสสีตามสีแบบอักษรสีแดงใน Excel ด้วย VBA .
ขั้นตอน:
- เหมือนเมื่อก่อน เปิด Visual Basic Editor จาก นักพัฒนา แท็บและ แทรก โมดูล ในหน้าต่างโค้ด
- ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
Function ColorCode(rng As Range)
ColorCode = rng.Font.ColorIndex
End Function
- ตอนนี้ดังที่แสดงไว้ก่อนหน้านี้ โทร รหัสสี UDF จากชุดข้อมูล ส่งหมายเลขอ้างอิงเซลล์ (เช่น C5 ) เป็นอาร์กิวเมนต์ กด Enter
คุณจะได้รับรหัสสีที่เกี่ยวข้องเป็นค่าส่งคืน
- ตอนนี้ลากแถวลงโดย เติมแฮนเดิล เพื่อใช้ UDF ไปยังเซลล์ที่เหลือเพื่อรับรหัสของสีฟอนต์สีแดง
3. หากสีแบบอักษรเป็นสีแดง ให้ส่งคืนดัชนีใน Excel
ที่นี่ เราจะเรียนรู้วิธีคืนค่าหมายเลขดัชนีตามสีแบบอักษรสีแดงใน Excel ด้วย VBA .
ขั้นตอน:
- เหมือนเมื่อก่อน เปิด Visual Basic Editor จาก นักพัฒนา แท็บและ แทรก โมดูล ในหน้าต่างโค้ด
- ในหน้าต่างโค้ด ให้คัดลอกโค้ดต่อไปนี้แล้ววาง
Function IndexColor(cell As Range)
IndexColor = cell.Font.Color
End Function
- ตอนนี้ดังที่แสดงไว้ก่อนหน้านี้ โทร IndexColor UDF จากชุดข้อมูล ส่งหมายเลขอ้างอิงเซลล์ (เช่น C5 ) เป็นอาร์กิวเมนต์ กด Enter
คุณจะได้รับหมายเลขดัชนีที่เกี่ยวข้องของสีแบบอักษรเป็นค่าส่งคืน
- ตอนนี้ลากแถวลงโดย เติมแฮนเดิล เพื่อใช้ UDF ไปยังเซลล์ที่เหลือเพื่อรับหมายเลขดัชนีของสีฟอนต์สีแดง
เซลล์ที่เก็บข้อความที่มีแบบอักษรสีแดงจะส่งกลับ 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
- ตอนนี้ดังที่แสดงไว้ก่อนหน้านี้ โทร FontRGB UDF จากชุดข้อมูล ส่งหมายเลขอ้างอิงเซลล์ (เช่น C5 ) เป็นอาร์กิวเมนต์ กด Enter
คุณจะได้รับโค้ด RGB ที่เกี่ยวข้องของสีฟอนต์เป็นค่าส่งคืน
- ตอนนี้ลากแถวลงโดย เติมแฮนเดิล เพื่อใช้ UDF ไปยังเซลล์ที่เหลือเพื่อรับโค้ด RGB ของสีฟอนต์สีแดง
เซลล์ที่เก็บข้อความที่มีแบบอักษรสีแดงจะส่งกลับ 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
ตอนนี้รหัสของคุณพร้อมใช้งานแล้ว
- กด F5 บนแป้นพิมพ์หรือจากแถบเมนู ให้เลือก เรียกใช้ -> เรียกใช้ Sub/UserForm . คุณยังสามารถคลิกที่ไอคอน Play ขนาดเล็ก ในแถบเมนูย่อยเพื่อเรียกใช้มาโคร
คุณจะเห็นว่าขณะนี้เซลล์ที่มีแบบอักษรสีแดงถูกเน้น
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
ตอนนี้รหัสของคุณพร้อมใช้งานแล้ว
- วิ่ง มาโคร
ค่าที่มีสีแบบอักษรสีแดงจะเปลี่ยนกลับเป็นสีแบบอักษรเริ่มต้น
บทสรุป
บทความนี้แสดงให้คุณเห็นว่าสีฟอนต์ของค่าในชุดข้อมูลของคุณเป็นสีแดงหรือไม่ แล้วจะได้ผลลัพธ์บางอย่างใน Excel โดยใช้ VBA ได้อย่างไร . ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับคุณมาก อย่าลังเลที่จะถามคำถามใด ๆ เกี่ยวกับหัวข้อนี้
คุณอาจต้องการสำรวจด้วย
- VBA เพื่อลบอักขระออกจากสตริงใน Excel (7 วิธี)
- วิธีใช้ VBA เพื่อลบแถวว่างใน Excel
- มาโคร VBA เพื่อแทรกแถวใน Excel ตามเกณฑ์ (4 วิธี)
- วิธีการนับแถวด้วย VBA ใน Excel (5 วิธี)
- VBA เพื่อลบแถวทั้งหมดตามค่าของเซลล์ใน Excel (3 วิธี)