【问题标题】:Inputting a random date into a cell - Excel VBA在单元格中输入随机日期 - Excel VBA
【发布时间】:2013-10-01 14:04:45
【问题描述】:

对此进行了一些研究,我发现有一些方法可以使用 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//

【问题讨论】:

  • 你的意思是任何随机日期 - 例如1423 年 2 月 23 日和 2345 年 12 月 16 日是可以接受的 - 还是您想要一个指定的日期范围?
  • 喜欢介于 1/1/1990 到 1/1/2012 之间的范围内,并且也是这样的格式?
  • RANDBetween 似乎没有内置到 excel-vba 中,我需要在其他地方定义它吗?
  • @pnuts - 迂腐...1 应该是32874 对于OPs 规定的日期范围。但这是解决这个问题的最简单方法(+1)
  • @pnuts - 哈哈!是的,我想你一定把它误读为 1900 年 1 月 1 日......快乐的小径......

标签: vba date excel random


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    使用 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
    

    【讨论】:

      【解决方案3】:

      将您的函数翻译成 VBA:

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

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

      【讨论】:

        【解决方案4】:

        您可以使用 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))
        

        参考:here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-24
          • 1970-01-01
          • 1970-01-01
          • 2019-04-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多