VBA:如果单元格格式是date然后做一些事情
我有一个macros设置条件的问题。 它应该这样做:
If CELL_A is * **AND** CELL_B is **DATE** then....
Sub kontrolafyzprav() radek = 4 With List1 Do While .Cells(radek, 3) <> "" If .Cells(radek, 3) = "DOM" And .Cells(radek, 7).NumberFormat = "General" Then .Cells(radek, 3).Interior.Color = RGB(255, 150, 150) .Cells(radek, 7).Interior.Color = RGB(255, 150, 150) ElseIf .Cells(radek, 3) = "MO" And .Cells(radek, 7).NumberFormat = "d/m/yyyy" Then .Cells(radek, 3).Interior.Color = RGB(255, 150, 150) .Cells(radek, 7).Interior.Color = RGB(255, 150, 150) ' :( :( :( :( End If radek = radek + 1 Loop End With End Sub
与ElseIf .Cells(radek, 3) = "MO" And .Cells(radek, 7).NumberFormat = "d/m/yyyy" Then
我尝试了所有我能想到的事情。
第一组条件很好,但我不能得到第二个:/
任何帮助?
本机VBA IsDate函数可以很好地确定单元格的内容,看它是否包含date。 由Range.Value属性 (但不是Range.Value2属性 )保留的区域date特定设置有助于确定。
Sub kontrolafyzprav() Dim raek As Long radek = 4 With List1 Do While .Cells(radek, 3) <> "" If .Cells(radek, 3) = "DOM" And .Cells(radek, 7).NumberFormat = "General" Then .Cells(radek, 3).Interior.Color = RGB(255, 150, 150) .Cells(radek, 7).Interior.Color = RGB(255, 150, 150) ElseIf .Cells(radek, 3) = "MO" And IsDate(.Cells(radek, 7)) Then .Cells(radek, 3).Interior.Color = RGB(255, 150, 150) .Cells(radek, 7).Interior.Color = RGB(255, 150, 150) ' :( :( :( :( End If radek = radek + 1 Loop End With End Sub
IsDate函数不会被一个无效的文本看起来像一个date所迷惑。