2016-11-15 73 views
0

在A列中,日期格式为“2016年1月”。 F列中有短文本短语。 在J栏我有颜色的名称。在单元格中比较日期

如果条件满足列F和A,我试图改变颜色在列J中。目前,我的代码忽略A列中的日期条件,并将J列转换为“蓝色” 。

任何帮助表示赞赏。谢谢。

Sub CompleteKDs() 
For MY_ROWS = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 
    If Range("F" & MY_ROWS).Value = "dog" And Range("A" & MY_ROWS).Value >= (6/1/2016) Then 
     Range("J" & MY_ROWS).Value = "blue" 
    End If 
Next MY_ROWS 

End Sub 
+2

更改日期是#之间的...'#6/1/2016#' – Rdster

+0

工作完美。谢谢 – Kyle

+0

只要记住用这种格式写成的日期是'#m/d/yyyy#''格式,即使你处于使用dd/mm/yyyy格式日期的地区(**正确的**方式来表示日期!!;))例外情况是#16/3/2016#这样的日期,Excel会将其解释为2016年3月16日,因为没有月16日。 – YowE3K

回答

0

Rdster正确回答:更改日期是#之间的...#6/1 /到2016年#

+0

将使用'Format(“6/1/2016”, “dd/mm/yyyy”)'而不是格式(范围(“A”和MY_ROWS).Value,“dd/mm/yyyy”)''。只需将dd/mm/yyyy更改为您的格式,然后确定它们都是按照您的要求格式化的。 – Niclas

+0

@Niclas - 比较两个已经格式化为日期的文本字段作为高阶位置不会给出好的结果(例如'format(“6/2/2016”,“dd/mm/yyyy”)> = format(“ 2015年9月2日“,”dd/mm/yyyy“)将因为”06 ....“不是”09 ....“)而成为”False“。然后将一个字符串转换为一个日期(隐式在'Format'的第一个参数中),这样它就可以使用日期格式格式化为一个字符串,并可能将其用作日期,这也不是一个好主意。 – YowE3K