在excel中有两列数据,所有数据条目都是日期:
我需要确保第二列(K)中的日期不在第一列(J)中的日期之前。我不认为我可以使用条件格式。
使用VBA,我如何检查每对日期,然后如果该日期在J中的相应日期之前,则使K列中的单元格变为红色?
感谢您的帮助!如果有帮助,我在下面列出了一张图片。我认为K值是空白的并不重要,因为我想知道这些是否为空,代码会像其他日期变成红色那样读取。
截图:
答案 0 :(得分:0)
假设您的工作表是sheet1,如果不只是更改工作表中的名称(“”)
Sub CompareDates()
Dim Counter As Integer
Dim myDate As Date
Dim myDateCompare As Date
For Counter = 1 To 100
myDate = Worksheets("Sheet1").Cells(Counter, 10).Value 'Refers to Column J
myDateCompare = Worksheets("Sheet1").Cells(Counter, 11).Value 'Refers to Column K
If myDate > myDateCompare Then Worksheets("Sheet1").Cells(Counter, 11).Interior.ColorIndex = 46
Next Counter
End Sub
答案 1 :(得分:0)
如果我理解正确的话,这将为前面的日期或它们是空白的。
Option Explicit
Public Sub Color()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1") '---Name it whatever the sheet name is
Dim x As Integer
For x = 6 To 100
If ws.Cells(x, 11).Value2 <= ws.Cells(x, 10).Value2 Then
ws.Cells(x, 11).Interior.Color = RGB(255, 0, 0) '---colors the cell red
ElseIf ws.Cells(x, 11).Value2 = "" Then
ws.Cells(x, 11).Interior.Color = RGB(255, 0, 0) '---If you want to color the blank ones as well
End If
Next x
End Sub
答案 2 :(得分:0)
此代码将检查两个日期并使K列中的单元格变为红色。 (它也会使空白单元格变红)
Sub Checkdates()
Dim i As Integer
For i = 1 To 11 'from row 1 to 11
If Cells(i, 10) >= Cells(i, 11) Then 'Checks if the the statement "cell K > cell J" is true
Cells(i, 11).Interior.Color = RGB(255, 0, 0) 'if the statement is true, then turn cell in column K to red
End If
Next i
End Sub
答案 3 :(得分:0)