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.

ArrowMain

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.

ArrowOutput

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]