Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 日期值的VBA等价物?_Excel_Vba - Fatal编程技术网

Excel 日期值的VBA等价物?

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

=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
在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”
。谢谢好极了谢谢