Thay đổi màu phông chữ dựa trên Ngày bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi sẽ sử dụng sự kiện sổ làm việc để đánh dấu các ngày lớn hơn ngày hiện tại.
Dữ liệu thô cho ví dụ này bao gồm mục tiêu bán hàng hàng ngày và mục tiêu đạt được.
Chúng tôi muốn làm nổi bật những ngày lớn hơn ngày hiện tại.
Giải thích logic
Trong bài viết này, chúng tôi đã tạo hai macro, “SetColor” và “ResetColor”.
Macro “SetColor” được sử dụng để đánh dấu các ngày lớn hơn ngày hiện tại.
Macro “ResetColor” được sử dụng để đặt lại định dạng của nguồn đã chỉ định.
Chúng tôi đã sử dụng hai sự kiện sổ làm việc, sự kiện mở sổ làm việc và sổ làm việc trước khi đóng sự kiện.
Sự kiện mở sổ làm việc được kích hoạt khi sổ làm việc được mở. Khi mở sổ làm việc, nó sẽ tự động chạy macro “SetColor”.
Sổ làm việc trước khi sự kiện đóng được sử dụng để đặt lại sự kiện được liên kết với sự kiện mở sổ làm việc.
Giải thích mã
Nếu IsDate (ActiveCell.Value) Và ActiveCell.Value> Ngày thì Đoạn mã trên được sử dụng để kiểm tra xem giá trị trong ô có thuộc kiểu dữ liệu ngày và lớn hơn ngày hiện tại hay không.
ActiveCell.Interior.Color = RGB (0, 255, 0)
Đoạn mã trên được sử dụng để gán màu xanh cho ô hiện hoạt.
Đặt Source = Range (“A1”, Range (“A1”). SpecialCells (xlCellTypeLastCell))
Đoạn mã trên được sử dụng để chọn tất cả dữ liệu trong trang tính excel.
Vui lòng theo dõi bên dưới để biết mã
Option Explicit Sub SetColor() If IsDate(ActiveCell.Value) And ActiveCell.Value > Date Then ActiveCell.Interior.Color = RGB(0, 255, 0) Else ActiveCell.Interior.Color = RGB(221, 235, 247) End If End Sub Sub ResetColor() 'Declaring variables Dim Rng, Source As Range Dim IntRow As Integer, IntCol As Integer 'Specifying all the cells as source range Set Source = Range("A1", Range("A1").SpecialCells(xlCellTypeLastCell)) 'Looping through all the cells For Each Rng In Source 'Checking whether cell contains a value If Not IsEmpty(Rng) Then 'Checking whether cell contain value of date data type If IsDate(Rng.Value) Then Rng.Select 'Assigning Green color if value is greater than today date If DateValue(Rng.Value) > Date Then ActiveCell.Interior.Color = RGB(0, 255, 0) Else ActiveCell.Interior.Color = RGB(221, 235, 247) End If End If End If Next Rng End Sub 'Insert below code in ThisWorkbook module Option Explicit Private Sub Workbook_Open() With Worksheets("Main") 'Event fired on entry to worksheet .OnEntry = "SetColor" 'Event fired on sheet activation .OnSheetActivate = "ResetColor" End With End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) With Worksheets("Main") .OnEntry = "" .OnSheetActivate = "" End With End Sub
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]