VBA – 将date和时间replace为星期几和AM / PM

我想知道是否有方法来改变第一部分的周一,周二,周三等等,以及第二部分AM或PM是否改变mm / dd / yyyy hh:mm。 例如, "12/26/2016 7:29"在单独的单元格中是"Monday" ,在另一个单元格中是"AM"

我不确定使用Replace函数是否有用,还有其他更有用的东西。 提前致谢。

您的每个要求都可以用自定义数字格式来满足。

在A1中的12/26/2016 7:29 put =a1在B1中,并使用cnf(ctrl + 1)作为dddd 。 在具有相同=a1公式的C1中,使用AM/PM的cnf

对于VBA,请使用.NumberFormat属性。

 range("b1:c1").value = range("a1").value range("b1").numberformat = "dddd" range("c1").numberformat = "AM/PM" 

A1中的数据,在B1中input:

 =TEXT(A1,"dddd") 

C1中input:

 =RIGHT(TEXT(A1-ROUNDDOWN(A1,0),"[$-F400]h:mm:ss AM/PM"),2) 

在这里输入图像说明

编辑#1:

下面是一些UDF()做同样的事情:

 Public Function DayOfWeek(r As Range) As String Dim d As Date d = r.Value DayOfWeek = Format(d, "dddd") End Function Public Function PreOrPostNoon(r As Range) As String Dim d As Date d = r.Value PreOrPostNoon = Right(Format(d, "[$-F400]h:mm:ss AM/PM"), 2) End Function