Excel VBA中两个日期时间之间的随机日期时间

时间:2015-02-15 17:06:38

标签: excel vba excel-vba datetime

如何在Excel VBA中的两个日期时间之间获得随机日期时间?

我试过

worksheetFunction.Randbetween(time1, time2)

但只提供没有小时,分钟和秒的日期(尽管time1time2包括小时,分钟和秒)

我还尝试了以下代码,其中我将tmp声明为字符串。

tmp = DateDiff("s", time1, time2) [to get the seconds]
tmp = Int((tmp +1) * Rnd) [to get a random number inbetween the DateDiff]
tmp = tmp + CDbl(time1)

但这也行不通......

1 个答案:

答案 0 :(得分:0)

以下代码可以解决这个问题:

worksheetFunction.Randbetween(time1, time2) + Rnd()

Rnd()将生成0到1之间的值,时间存储为一天的一小部分

您也可以避开第一部分并使用

time1+Rnd()*(time2-time1+1)

如果您想要时间2&00; 00:00:00&#39>,请删除+1作为上限,或者time1time2都是日期时间,而不是日期

在使用两个版本之前,您还应该使用Randomize语句。