找回密码
 立即注册
搜索
查看: 3382|回复: 7

[软件] 【超能力】vb/vba里调用几个sub,如何做到执行完一个sub再下一个sub

[复制链接]
     
发表于 2017-9-8 08:42 来自手机 | 显示全部楼层 |阅读模式
call sub1
call sub2
call sub3

sub1里的代码跑完了,再跑sub2

我测试的结果,sub123是按代码顺序调用,上一个sub调用后,立即调用下一个sub,而不是等上个sub执行完成
回复

使用道具 举报

     
 楼主| 发表于 2017-9-8 08:43 来自手机 | 显示全部楼层
网上按异步同步的关键词找全是shell调用外部程序的,不是这种调用内部sub的
回复

使用道具 举报

发表于 2017-9-8 08:51 | 显示全部楼层
vb有线程的吧?
回复

使用道具 举报

发表于 2017-9-8 09:00 | 显示全部楼层
嵌套行不?   一個CALL一個
回复

使用道具 举报

发表于 2017-9-8 10:15 | 显示全部楼层
本帖最后由 ustslayer 于 2017-9-8 10:17 编辑

如果 sub1/2/3 里面有异步代码,那你就得使用某种异步的等待方式来保证每一块异步代码执行完毕之后再执行下一块代码。
常见的等待方式有回调 (callback)、承诺 (promise)以及锁 (lock)。
回复

使用道具 举报

头像被屏蔽
     
发表于 2017-9-8 10:54 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 2017-9-8 11:36 来自手机 | 显示全部楼层
直接用循环sleep检查全局条件吧

—— 来自 HUAWEI KNT-AL20, Android 7.0上的 S1Next-鹅版 v1.3.1.0-play
回复

使用道具 举报

     
发表于 2017-9-8 13:54 | 显示全部楼层
测了一下,是顺序执行的没错呀
  1. Sub a()
  2. For i = 1 To 100
  3.     Debug.Print "a", i
  4. Next i
  5. End Sub
  6. Sub a2()
  7. For i = 1 To 100
  8.     Debug.Print "b", i
  9. Next i
  10. End Sub
  11. Sub a3()
  12. For i = 1 To 100
  13.     Debug.Print "c", i
  14. Next i
  15. End Sub

  16. Sub ini()
  17. a
  18. a2
  19. a3
  20. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-8-16 03:48 , Processed in 0.057102 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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