Excel精英培训网

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

[已解决]按顺序执行多个宏代码

[复制链接]
发表于 2014-10-22 00:35 | 显示全部楼层 |阅读模式
本帖最后由 lijian8003 于 2014-10-22 02:37 编辑

在excel中,有三个宏,第二个宏需要在第一个宏的运算基础上继续运算,第三个宏需要在第二个宏的运算基础上再继续运算,故此必须在第一个宏执行的运算任务结束后(第一个宏执行完运算任务需要10秒),再执行第二个宏,在第二个宏执行的运算任务结束后(第二个宏执行完运算任务也需要10秒),再执行第三个宏。
下述代码可以达到这样的效果吗?如果不能,代码该如何修改?
初步考虑:
1、估计出宏代码运算结束的时间,在一个宏代码运算时,延迟下一个宏代码的执行;
2、最完备的方法应该是触发机制,如何判断上一个宏代码执行运算任务结束,之后再执行下一个宏代码?

Sub all()
Call  第一个宏_黄
Call  第二个宏_黑
Call  第三个宏_红
End Sub

Sub 第一个宏_黄()
MsgBox "第一个宏"
End Sub

Sub 第二个宏_黑()
MsgBox "第二个宏"
End Sub

Sub 第三个宏_红()
MsgBox "第三个宏"
End Sub

最佳答案
2014-10-22 05:38
  1. Sub all()
  2. Call 第一个宏_黄
  3. Application.Wait (Now + TimeValue("00:00:10")) '10秒后运行宏二
  4. Application.StatusBar = "……程序正在运行,请稍候……"
  5. Call 第二个宏_黑
  6. Application.Wait (Now + TimeValue("00:00:10")) '10秒后运行宏三
  7. Application.StatusBar = "……程序正在运行,请稍候……"
  8. Call 第三个宏_红
  9. Application.StatusBar = "程序运行结束"
  10. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-10-22 05:38 | 显示全部楼层    本楼为最佳答案   
  1. Sub all()
  2. Call 第一个宏_黄
  3. Application.Wait (Now + TimeValue("00:00:10")) '10秒后运行宏二
  4. Application.StatusBar = "……程序正在运行,请稍候……"
  5. Call 第二个宏_黑
  6. Application.Wait (Now + TimeValue("00:00:10")) '10秒后运行宏三
  7. Application.StatusBar = "……程序正在运行,请稍候……"
  8. Call 第三个宏_红
  9. Application.StatusBar = "程序运行结束"
  10. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
lijian8003 + 3 解决问题。感谢帮助。

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-10-22 12:53 | 显示全部楼层
本帖最后由 lijian8003 于 2014-10-22 13:21 编辑
dsmch 发表于 2014-10-22 05:38


感谢。
如果延时500毫秒,如何表达?
回复

使用道具 举报

发表于 2014-10-22 13:56 | 显示全部楼层
Now + TimeValue("00:00:01")/2
回复

使用道具 举报

发表于 2014-10-23 00:02 | 显示全部楼层
一个宏运行10',时间够长的
回复

使用道具 举报

 楼主| 发表于 2014-10-23 12:41 | 显示全部楼层
su45 发表于 2014-10-23 00:02
一个宏运行10',时间够长的

为了突出时间上的间隔,特意模拟了一种运行过程。
回复

使用道具 举报

 楼主| 发表于 2014-10-24 01:38 | 显示全部楼层
dsmch 发表于 2014-10-22 05:38

感谢!
实践中,感觉VBA是单线程,一次只能运行1个VBA,即当call 宏1 运行时,call宏2 不能运行,只有当call 宏1 运行结束,call宏2 才能运行。
不知道我的理解是否正确?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 22:03 , Processed in 0.362667 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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