Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2743|回复: 6

[已解决]想用VBA生成-组随机时间

[复制链接]
发表于 2017-2-23 12:25 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2017-2-24 08:58 编辑

想用VBA生成-组随机时间 要求后面的时间晚于前面3-5分钟格式为 10/25/52 2016/12/14
最佳答案
2017-2-23 15:28
  1. Sub tt()
  2.     n = 10 '生成10组
  3.     ReDim arr(1 To n, 1 To 1)
  4.     arr(1, 1) = Now
  5.     For i = 2 To n
  6.         p = Rnd * 3 + 3   '生成3--5的随机数
  7.         arr(i, 1) = arr(i - 1, 1) + p / 60 / 24
  8.     Next
  9.     For i = 1 To n
  10.         arr(i, 1) = Format(arr(i, 1), "hh/mm/ss yyyy/mm/dd")
  11.     Next
  12.     [a1].Resize(n) = arr
  13. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-2-23 15:28 | 显示全部楼层    本楼为最佳答案   
  1. Sub tt()
  2.     n = 10 '生成10组
  3.     ReDim arr(1 To n, 1 To 1)
  4.     arr(1, 1) = Now
  5.     For i = 2 To n
  6.         p = Rnd * 3 + 3   '生成3--5的随机数
  7.         arr(i, 1) = arr(i - 1, 1) + p / 60 / 24
  8.     Next
  9.     For i = 1 To n
  10.         arr(i, 1) = Format(arr(i, 1), "hh/mm/ss yyyy/mm/dd")
  11.     Next
  12.     [a1].Resize(n) = arr
  13. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-2-24 13:33 | 显示全部楼层

   谢谢啊 那我想从A列第二行开始生成我指定的起始时间,每隔9行生成一个时间 总共要生成35个 怎么弄啊 大神
回复

使用道具 举报

发表于 2017-2-24 13:46 | 显示全部楼层
  1. Sub tt()
  2.     n = 35 '生成35组
  3.     ReDim arr(1 To 9 * n, 1 To 1)
  4.     arr(1, 1) = CDate("2014-10-1 20:10:36")   '指定时间
  5.     For i = 2 To n
  6.         p = Rnd * 3 + 3   '生成3--5的随机数
  7.         k = 9 * i - 8
  8.         arr(k, 1) = arr(k - 9, 1) + p / 60 / 24
  9.     Next
  10.     [a2].Resize(9 * n) = arr
  11.     [a2].Resize(9 * n).NumberFormatLocal = "hh/mm/ss yyyy/mm/dd"
  12. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-2-24 14:19 | 显示全部楼层
本帖最后由 yunll 于 2017-2-24 15:08 编辑


回复

使用道具 举报

 楼主| 发表于 2017-2-24 15:07 | 显示全部楼层

Sub test()
Dim rq As Date
rq = InputBox("请输入时间:")
    n = 35
    ReDim arr(1 To n, 1 To 1)
    arr(1, 1) = rq
    For i = 2 To n
        p = Rnd * 3 + 3
        arr(i, 1) = arr(i - 1, 1) + p / 60 / 24
    Next
    For i = 1 To n
        arr(i, 1) = Format(arr(i, 1), "hh/mm/ss yyyy/mm/dd")
    Next
    For m = 1 To 35
    Range("a" & (m - 1) * 9 + 2) = arr(m, 1)
   
    Next
End Sub
红色是我加的 不知道怎么改 运行不了

回复

使用道具 举报

发表于 2017-2-27 09:45 | 显示全部楼层
测试了一下,可以运行的。不过得输入正确的日期格式。比如我输入 2017-1-1 10:22:11 就是可以运行的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 17:41 , Processed in 0.181362 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表