Vba: วิธีเน้นค่า n แรกในคอลัมน์
คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน VBA เพื่อเน้นค่า N แรกของคอลัมน์ใน Excel:
SubHighlightTopN ()
Dim rng As Range
Dim EntireRange As Range
'specify range to use
Set EntireRange = Range(" A2:A11 ")
'highlight top 3 values in range
For Each rng In EntireRange
For i = 1 To 3
If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
rng.Interior.Color = vbYellow
End If
Next
Next rng
End Sub
มาโครนี้จะเน้นค่าสูงสุด 3 ค่าในช่วง A2:A11
หากต้องการเน้นจำนวนค่าบนที่แตกต่างกัน เพียงแก้ไขบรรทัด For i = 1 ถึง 3 เพื่อให้มีขีดจำกัดบนที่แตกต่างกัน
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: เน้นค่า N แรกในคอลัมน์โดยใช้ VBA
สมมติว่าเรามีค่าต่อไปนี้ในคอลัมน์ A ของสเปรดชีต Excel ของเรา:

เราสามารถสร้างมาโครต่อไปนี้เพื่อเน้นค่าสูงสุด 3 ค่าแรกสุดในช่วง A2:A11 :
SubHighlightTopN ()
Dim rng As Range
Dim EntireRange As Range
'specify range to use
Set EntireRange = Range(" A2:A11 ")
'highlight top 3 values in range
For Each rng In EntireRange
For i = 1 To 3
If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
rng.Interior.Color = vbYellow
End If
Next
Next rng
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดสังเกตว่าเซลล์ที่มีค่าสูงสุด 3 ค่าสูงสุดในคอลัมน์ A จะถูกไฮไลต์แล้ว
โปรดทราบว่าคุณยังสามารถเปลี่ยนสีที่จะใช้สำหรับการไฮไลต์รวมถึงจำนวนค่าหลักที่จะไฮไลต์ได้ด้วย
ตัวอย่างเช่น เราสามารถใช้มาโครต่อไปนี้เพื่อไฮไลต์ 5 ค่าแรกในคอลัมน์ A เป็นสีเขียว:
SubHighlightTopN ()
Dim rng As Range
Dim EntireRange As Range
'specify range to use
Set EntireRange = Range(" A2:A11 ")
'highlight top 5 values in range
For Each rng In EntireRange
For i = 1 To 5
If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
rng.Interior.Color = vbGreen
End If
Next
Next rng
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดสังเกตว่าเซลล์ที่มีค่าสูงสุด 5 ค่าในคอลัมน์ A จะถูกเน้นด้วยสีเขียว
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีใช้การจัดรูปแบบตามเงื่อนไขกับเซลล์
VBA: วิธีใช้การจัดรูปแบบตามเงื่อนไขกับค่าที่ซ้ำกัน
VBA: วิธีค้นหาค่าในคอลัมน์