ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2576|回复: 11

[求助] VBA真的无法同时运行2+个进程吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-23 17:36 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我看文献说,VBA6.3就支持多线程了,是所谓的能让2+个进程同时运行吗?
"16、随着在2001年3月VBA 6.3版的发布,Microsoft已经增强了VBA 6.0,并包含了新的功能,扩充了开发环境的能力、灵活性和安全性。这使得新的ISVs(独立软件供应商)使用这些新功能可开发出功能更强大的解决方案,诸如基于VBA的多线程工程、开发高效率的加载宏、以及支持数字签名。并且随着Microsoft新的整合技术的创建,ISVs能比以前更快速和容易地整合VBA到他们的应用程序中。 "

比如我下面的例子:
下面是2个段非常简单的代码

Sub sum1()
Dim i1 As Integer
For i1 = 1 To 30000
Range("A1") = i1
DoEvents
Next
End Sub

Sub sum2()
Dim i2 As Integer
For i2 = 1 To 30000
Range("A2") = i2
DoEvents
Next
End Sub

我想实现的效果就是当A1单元格在进行1到30000的变化时,A2也能同时运行进行1到30000的变化
现在就是运行另一段进程时,之前运行的就是自动暂停

那么要同时与您应该怎么改这段代码呢??

谢谢各位大神了

TA的精华主题

TA的得分主题

发表于 2014-11-23 18:13 | 显示全部楼层
对并行问题不懂。。。。。。。

宏观上并行,微观上串行????

TA的精华主题

TA的得分主题

发表于 2014-11-23 18:28 | 显示全部楼层
不能同时进行的,就好像你有2 个朋友今晚都请你7:00吃饭,你能同时到2 个地方去吃饭吗。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-23 19:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
jpj123 发表于 2014-11-23 18:28
不能同时进行的,就好像你有2 个朋友今晚都请你7:00吃饭,你能同时到2 个地方去吃饭吗。

麻烦请问其他的高级语言可以进程并发,是因为它们有这些功能吗?

TA的精华主题

TA的得分主题

发表于 2014-11-23 20:01 | 显示全部楼层
saseku 发表于 2014-11-23 19:52
麻烦请问其他的高级语言可以进程并发,是因为它们有这些功能吗?

说实话还真没想过这个。毕竟每个软件都不是万能的,呵呵!

TA的精华主题

TA的得分主题

发表于 2014-11-23 20:07 | 显示全部楼层
宏观上并行,微观上串行????
真不懂。。。。

TA的精华主题

TA的得分主题

发表于 2014-11-23 20:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在Excel上并行运行多个线程实践上意义并不大。如果在运行中释放系统的控制权,用DoEvents语句基本可以实现。

TA的精华主题

TA的得分主题

发表于 2014-11-23 21:21 | 显示全部楼层
不知道VBA的类里的有没有类似Java中的 Thread类 或 Runnable接口
如果有,或许就可以吧

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-24 00:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Cellfarmer 发表于 2014-11-23 20:45
在Excel上并行运行多个线程实践上意义并不大。如果在运行中释放系统的控制权,用DoEvents语句基本可以实现。 ...

但我一段用了DoEvents进程运行中,再运行另一个进程,之前用了DoEvents的进程也会暂停

TA的精华主题

TA的得分主题

发表于 2014-11-24 10:14 | 显示全部楼层
saseku 发表于 2014-11-24 00:20
但我一段用了DoEvents进程运行中,再运行另一个进程,之前用了DoEvents的进程也会暂停

先把 进程 和 线程 之间的区别搞清楚再来讨论吧~~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 18:33 , Processed in 0.038138 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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