• Thứ Ba, 15/05/2007 09:48 (GMT+7)

    Xếp loại học sinh theo màu bằng VBA

    Câu hỏi :

    Tôi có 1 sheet chứa bản thống kê điểm các môn học gồm toán, lý, hoá... và điểm TB. Tôi muốn xếp loại học sinh và có các màu như: giỏi thì màu đỏ, khá thì màu xanh, trung bình màu đen. Xin hướng dẫn viết code VBA để thực hiện yêu cầu trên.



    Trả lời :

    Về nguyên tắc, bất kỳ công việc nào mà bạn thực hiện thủ công được thì đều có thể lập trình VBA để thực hiện tự động. Hiển thị màu chữ là 1 trong nhiều hoạt động chỉnh dạng nội dung mà bạn có thể thực hiện bằng tay hay bằng VBA. Thí dụ sau là đoạn code VBA tô màu tự động từng hàng học sinh bằng màu tương ứng với loại giỏi, khá, trung bình (giả sử danh sách lớp có 100 học sinh từ hàng 5 tới hàng 104, mỗi học sinh có 6 cột dữ liệu từ A-F, trong đó cột F miêu tả điểm trung bình của học sinh):

     Sub Macro1()
     ' Macro demo việc đổi màu dữ liệu
     Dim rgn As String
     Dim dtb As Double
     Dim rgbcolor As Variant
     'duyệt từng học sinh
     For i = 5 To 104
     'lấy điểm trung bình
     dtb = Range('F' & i).Value
     'xác định loại để xác định màu
     If dtb > 8# Then 'giỏi
     rgbcolor = RGB(255, 0, 0)
     ElseIf dtb > 6.5 Then 'khá
     rgbcolor = RGB(0, 0, 255)
     Else 'trung bình & yếu
     rgbcolor = RGB(0, 0, 0)
     End If
     'xác định hàng dữ liệu học sinh tương ứng
     rgn = 'A' & i & ':F' & i
     Range(rgn).Select
     'đổi màu theo yêu cầu
     Selection.Font.Color = rgbcolor
     Next i
     End Sub

    Chuyên mục: Lập trình