如何在Excel VBA中的两个日期时间之间获得随机日期时间?
我试过
worksheetFunction.Randbetween(time1, time2)
但只提供没有小时,分钟和秒的日期(尽管time1
和time2
包括小时,分钟和秒)
我还尝试了以下代码,其中我将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)
但这也行不通......
答案 0 :(得分:0)
以下代码可以解决这个问题:
worksheetFunction.Randbetween(time1, time2) + Rnd()
Rnd()将生成0到1之间的值,时间存储为一天的一小部分
您也可以避开第一部分并使用
time1+Rnd()*(time2-time1+1)
如果您想要时间2&00; 00:00:00&#39>,请删除+1
作为上限,或者time1
和time2
都是日期时间,而不是日期
在使用两个版本之前,您还应该使用Randomize
语句。