Sub DataFormat()
Dim i As Long, LastRow As Long
LastRow = Worksheets("QC").Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To LastRow
If Worksheets("QC").Cells(i, "K").Value = "MM/01/YYYY" Then
Worksheets("QC").Cells(i, "K").Interior.ColorIndex = 2
Else
Worksheets("QC").Cells(i, "K").Interior.ColorIndex = 3
End If
Next i
End Sub
我只是在验证单元格K中的值。日期为2017年11月1日,单元格的格式为17年11月。通过以上代码,我正在验证它是否包含每月的第一天,并且此代码不起作用。请指导。
答案 0 :(得分:0)
您的问题主要来自
Worksheets("QC").Cells(i, "K").value
未检查正确的日期。要检查日期格式,您需要添加.NumberFormat
此外,您使用的mm/dd/yyyy
的数字格式与Excel中Nov-17格式的数字格式不同,因此可以将其删除。
现在,要检查一个月的某一天,您可以简单地使用函数Day()
,该函数仅在内部字符串中起作用。
Option Explicit
Sub DataFormat()
Dim i As Long, LastRow As Long
Dim daydate As String
LastRow = Worksheets("QC").Cells(Rows.Count, "A").End(xlUp).Row
For i = 3 To LastRow
daydate = Worksheets("QC").Cells(i, "K").Value
If IsDate(daydate) Then
If Day(daydate) = 1 Then
Worksheets("QC").Cells(i, "K").Interior.ColorIndex = 2
Else
Worksheets("QC").Cells(i, "K").Interior.ColorIndex = 3
End If
Else
Worksheets("QC").Cells(i, "K").Interior.ColorIndex = 3
End If
Next i
End Sub