excel vba 在设定时间自动运行另一个宏~

现在有个excel工作薄B,里面有a00, a03, a06, a09, a12, a15, a18这7个工作表,现在要设定在0:00, 3:00, 6:00, 9:00, 12:00, 15:00, 18:00这7个时间点自动运行宏micro,运行的结果分别在前面的7个表里,例如,0:00点自动运行宏micro,执行结果在a00表里;3:00点自动运行宏micro,执行结果在a03表里,以此类推。
非常感谢前面回答的热心网友,但好像没反应。
我的excel是2010版的。

第1个回答  2012-04-04
使用此代码时工作簿必须是打开的。我提供了一个思路。余下的代码自己写。自己再研究一下是否可用循环打开对应的工作表?
if time=0:00:00 then
sheets("a00").select
application.ontime timevalue("0:00:00"),"micro"
end if追问

非常感谢您的回答。
但我根据你的思路写了,好像没反应。

追答

未运行的原因可能是由于你没有单独执行时间运行程序。方法如下
1、在thisworkbook里写入一个宏
Sub 开始执行程序()
Application.OnTime Now + TimeValue("0:00:05"), "test1"
MsgBox ("程序已开始执行")
End Sub
2、插入一个模块写入如下的代码。
Sub test1()
Sheets("sheet1").Cells(2, 2) = 111
End Sub
3、将“开始执行程序”的宏在SHEET1中指定给按钮。单击“开始执行程序”按钮测试一下程序。意思是说在5秒后相貌sheet2的B2单元格要显示111.
4、测试通过后你可修改以上代码得到你想完成的任务。

追问

你这个案例就手动点击 执行了一次。

追答

我看你的运行次数不多,编写几个时间运行代码和执行程序,用CALL调用时间运行代码.K1为定时运行的宏.
k1 对应test1, k2 对应test2......
Sub 定时执行程序()
Call k1
Call k2
.
.
.
MsgBox ("程序已开始执行")
End Sub
将该宏指定给按钮即可实现多次执行操作.

追问

您好,您能给我一个完整的代码吗,我是新手,不会写呀~

追答

宏micro是否在各个工作表中都能执行.如果不能执行去掉单元格或工作表,工作簿的引用.
sub k1()
Application.OnTime TimeValue("0:00:00"), "micro1"
end sub
sub k2()
Application.OnTime TimeValue("3:00:00"), "micro2"
end sub
sub k3()
Application.OnTime TimeValue("6:00:00"), "micro3"
end sub
sub k4()
Application.OnTime TimeValue("9:00:00"), "micro4"
end sub
sub k5()
Application.OnTime TimeValue("12:00:00"), "micro5"
end sub
sub k6()
Application.OnTime TimeValue("15:00:00"), "micro6"
end sub
sub k7()
Application.OnTime TimeValue("18:00:00"), "micro7"
end sub
sub micro1()
sheet("a00").select
call micro
end sub
sub micro2()
sheet("a03").select
call micro
end sub
sub micro3()
sheet("a06").select
call micro
end sub
sub micro4()
sheet("a09").select
call micro
end sub
sub micro5()
sheet("a12").select
call micro
end sub
sub micro6()
sheet("a15").select
call micro
end sub
sub micro7()
sheet("a18").select
call micro
end sub
sub 执行时间程序()
call k1
call k2
call k3
call k4
call k5
call k6
call k7
end sub

本回答被提问者采纳
相似回答