2017-08-14 206 views
0

我认为我尝试做一些不可能的事情。我在范围A1:A5有一些日期。这些单元格必须有日期格式,因为我想检查它们是大于还是小于特定日期。此外,我想以以下格式在范围A1:A5中显示这些日期:yyyy.mm.我认为无法一举杀死两只鸟。日期显示和日期格式VBA

Public Sub test() 

Range("A1:A5").NumberFormat = "yyyy.mm" 
Range("A1:A5") = Format(Date, "yyyy.mm") 

If IsDate("A2") Then 
    Range("B2") = "OK" 
End If 

End Sub 

Range("B1:B5").NumberFormat = "yyyy.mm"变化对定制(yyyy.mm)细胞的格式,但日期仍然显示为不变的形式(YYYY.MM.DD)

Range (“A1:A5”) = Format(Date, “yyyy.dd”)显示的日期yyyy.mm但一年月份已更改为1905.07。此外,日期没有日期格式,但是自定义。

是真的不可能显示日期,如yyyy.mm但日期格式(以便在表单栏中日期显示为dd.mm.yyyy或其他方式),以便能够将它们与不同的日期?

最好的问候, Neke

回答

0

首先,使用日期内的点可能是一个问题,因为“2017.05”是用Excel解释为一个数字。

您可以通过使用像这样重新设置日期, “YYYY/MM”:

For Each r In Range("A1:A5") 
    r.Value = VBA.Format(r, "yyyy/mm") 
Next r 
+0

都能跟得上。 (“A1:A5”)。NumberFormat =“yyyy.mm” 'Range(“A1:A5”)=格式(日期, “YYYY/MM”) 对于每个R在范围( “A1:A5”) r.Value = VBA.Format(R, “YYYY/MM”) 下一个R 如果则IsDate(“A2 “)Then Range(”C2“)=”test“ End If End Sub' – neke

+0

@Neke您要转换的日期格式是什么? – Slaqr

+0

@ Slaqr的格式是Custom yyyy.mm.在单元格中写入例如2017.07,但在表单栏中可见01.07.2017。但单元格中的值不被视为日期。这就是为什么我不能使用一些陈述,如A1在今天的日期然后... – neke