知道第四问:关于自动生成考勤的VBA代码

来源:百度知道 编辑:UC知道 时间:2024/09/24 12:31:09
烦请高手帮忙使用VBA生成下列时间:
1\下限为07:46:00上限为08:00:00的考勤时间;
2\下限为12:00:00上限为12:14:00的考勤时间;
3\下限为13:16:00上限为13:30:00的考勤时间;
4\下限为17:30:00上限为17:44:00的考勤时间;
5\下限为18:16:00上限为18:30:00的考勤时间;
6\下限为20:30:00上限为20:44:00的考勤时间;

注:建议使用RAND()

1: DateAdd("s", rand(14 * 60), #07:46:00#)
2: DateAdd("s", rand(14 * 60), #12:00:00#)
3: DateAdd("s", rand(14 * 60), #13:16:00#)
4: DateAdd("s", rand(14 * 60), #17:30:00#)
5: DateAdd("s", rand(14 * 60), #18:16:00#)
6: DateAdd("s", rand(14 * 60), #20:30:00#)

我只研究VB的,VB和VBA相似,是不是一样我就不是很懂的
而且我只在Excel中用过简单的~
不知道你是要用到什么地方

Excel中输入你的下限值和上限值,如A1中1-6分别为你的1-6
宏中新建一个函数
函数里面写入
函数名==range(ADDRESS(INT(RAND()*6+1),1))
再在D列中输入考勤对象1-任意 E中输入"=函数名" (你建的)
打开一次就是随机生面的,每次都不一样

Dim s,objIE
Randomize
s = s & "(1) " & DateAdd("s", Int(Rnd * 14) * 60, #7:46:00 AM#) & vbNewLine
s = s & "(2) " & DateAdd("s", Int(Rnd * 14) * 60, #12:00:00 PM#) & vbNewLine
s = s & "(3) " & DateAdd("s", Int(Rnd * 14) * 60, #1:16:00 PM#) & vbNewLine
s = s & "(4) " & DateAdd("s"