-1

对此进行了一些研究,我发现有一些方法可以使用 excel 电子表格中的函数在一个范围内生成随机日期,如下所示:

 =DATE(2010, 1, 1)+LARGE(IF(WEEKDAY(DATE(2010, 1, 1)+ROW($1:$365)-1, 2)<6, ROW($1:$365)-1, ""), RANDBETWEEN(1, SUM(--(WEEKDAY(DATE(2010, 1, 1)+ROW($1:$365)-1, 2)<6))))

有没有办法我可以做到这一点并将其直接插入到单元格中

Cells(i, "F").Value = //Random Date//
4

4 回答 4

3

VBA方式:

Sub RandomDates()
    Dim startDate As Date, endDate As Date, randomDate As Date

    startDate = "1/1/1990"
    endDate = "1/1/2012"

    Cells(i, "f") = WorksheetFunction.RandBetween(startDate, endDate)
    Cells(i, "f").NumberFormat = "d/m/yyyy"
End Sub
于 2013-10-01T14:19:00.863 回答
0

使用pnuts方法:

Sub dural()
    i = 1
    d1 = DateValue("1/1/1990")
    d2 = DateValue("1/1/2012")
    Cells(i, "F").Value = Application.WorksheetFunction.RandBetween(d1, d2)
    Cells(i, "F").NumberFormat = "m/d/yyyy"
End Sub
于 2013-10-01T14:21:01.657 回答
0

将您的函数转换为 VBA:

=DateSerial(2001,1,1) + Int(Rnd*365)

如果您需要查看工作日,那么 vba 也有一个 WeekDay 功能。

于 2013-10-01T14:22:53.673 回答
0

您可以使用 RANDBETWEEN() 生成特定时间段的随机日期。您将包含 DATE() 函数以将底部和顶部值指定为日期,使用形式

RANDBETWEEN(DATE(bottomdate),DATE(topdate))

或者

RANDBETWEEN(DATE(bottomdate);DATE(topdate))

测试使用,或功能;RANDBETWEEN()

例如,要返回 2014 年 1 月 1 日到 2014 年 1 月 30 日之间的随机日期,您可以使用以下函数:

=RANDBETWEEN(DATE(2014,1,1),DATE(2014,1,30))

参考:这里

于 2014-09-04T07:33:53.197 回答