我是VBA的新手,我正在研究一个模块,用于从电子表格中读取数据并根据电子表格中的日期计算值。我以字符串形式读取变量,然后当前使用CDate将值更改为日期。但是,我只是遇到过DateValue,我想知道这两个函数之间的区别是什么,哪个更好用。

最佳答案

DateValue将仅返回日期。 CDate将保留日期和时间:

? DateValue("2014-07-24 15:43:06")
24/07/2014

? CDate("2014-07-24 15:43:06")
24/07/2014 15:43:06


同样,您可以使用TimeValue仅返回时间部分:

? TimeValue("2014-07-24 15:43:06")
15:43:06

? TimeValue("2014-07-24 15:43:06") > TimeSerial(12, 0, 0)
True


同样,正如吉它掷弹者所说,DateValue(和TimeValue)将仅接受String参数,而CDate也可以处理数字。要为数字类型模拟这些功能,请使用CDate(Int(num))CDate(num - Int(num))

关于vba - VBA中DateValue和CDate之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24944662/

10-10 10:32