Excel 日期值的VBA等价物?
=DATEVALUE的公式函数和VBA的DATEVALUE()提供独占结果。如何在VBA中格式化日期以获得与使用=DATEVALUE相同的序列化Excel 日期值的VBA等价物?,excel,vba,Excel,Vba,=DATEVALUE的公式函数和VBA的DATEVALUE()提供独占结果。如何在VBA中格式化日期以获得与使用=DATEVALUE相同的序列化 示例:1/19/2016,格式为“m/d/yyyy”,将通过=DATEVALUE()使用CLng返回42388,例如 =DATEVALUE("7/7/16") 返回 42558 在VBA中: ? CLng(DateValue("7/7/16")) 42558 使用CLng =DATEVALUE("7/7/16") 返回 42558 在VB
示例:
1/19/2016
,格式为“m/d/yyyy”,将通过=DATEVALUE()
使用CLng
返回42388
,例如
=DATEVALUE("7/7/16")
返回
42558
在VBA中:
? CLng(DateValue("7/7/16"))
42558
使用
CLng
=DATEVALUE("7/7/16")
返回
42558
在VBA中:
? CLng(DateValue("7/7/16"))
42558
有几种方法可以做到这一点@罗宾有一个好的。我再加一个
?DateDiff("d",0, "7/7/16")
42558
该函数以第一个参数为单位计算两个日期(第二个和第三个参数)之间的差值。因此,如果您将
“d”
更改为“h”
,您将获得0(Excel/VBA中第一个可能的日期)和2016年7月7日之间的小时数@罗宾有一个好的。我再加一个
?DateDiff("d",0, "7/7/16")
42558
该函数以第一个参数为单位计算两个日期(第二个和第三个参数)之间的差值。因此,如果您将“d”
更改为“h”
,您将得到0(Excel/VBA中第一个可能的日期)和7/7/2016
之间的小时数,我刚刚在一个有效的日期字符串上测试了这两个小时数。两者都返回相同的结果。例如,您可以尝试格式(“日期字符串”,“mm dd yyyy”)
。@ScottHoltzman-I未能澄清;我所说的序列化是指日期1/19/2016
将如何变成42388
。只需将目标单元格的数字格式更改为“General”
@ScottCraner-我需要一种在宏编辑器中进行转换的方法;无法更改单元格。在vba中:Range(“A1”)=“1/1/2016”
然后Range(“A1”)。NumberValue=“General”
我刚刚在一个有效的日期字符串上测试了这两个单元格。两者都返回相同的结果。例如,您可以尝试格式(“日期字符串”,“mm dd yyyy”)
。@ScottHoltzman-I未能澄清;我所说的序列化是指日期1/19/2016
将如何变成42388
。只需将目标单元格的数字格式更改为“General”
@ScottCraner-我需要一种在宏编辑器中进行转换的方法;无法更改单元格。在vba中:Range(“A1”)=“1/1/2016”
然后Range(“A1”)。NumberValue=“General”
。谢谢好极了谢谢