首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBScript似乎在等待Excel完成吗?

问VBScript似乎在等待Excel完成吗?
EN

Stack Overflow用户
提问于 2016-04-26 14:17:04
回答 4查看 2.1K关注 0票数 1

我对VBScript相当陌生,所以想向更有经验的用户检查一下我的理解:)

我编写了一个基本脚本来运行excel宏。宏名为MainFlow,然后在声明完成后出现一个消息框。代码在下面。

现在,让我感到惊讶的是,VBScript似乎在等待宏MainFlow完整运行,然后转到下一条语句,在本例中是一个消息框,表示已完成。这确实让我感到惊讶,因为根据我的经验,我希望VBScript会立即进入下一个声明。由于这将是一个更广泛的批处理过程的一部分,我想检查我的理解之前,我继续。我知道,对于从一个主脚本运行多个VBScripts,我需要使用等待返回布尔值,以确保每个脚本在启动下一个脚本之前已经完成,这使我感到惊讶的是,显然等待宏在脚本本身内完成。

如果有人能证实我的理解(甚至解释原因),那将是非常感谢的。

代码语言:javascript
复制
dim xlApp, xlBook 
Set xlApp = createobject("excel.application") 
xlApp.displayalerts = false 
Set xlbook = xlapp.workbooks.open("G:\Clients\Client\Reporting\Automated\Futures Expiry    Warning\All Futures Expiry.xlsm") 
xlapp.run "MainFlow" 
msgbox("Finished") 
xlbook.save 
xlbook.close false 
Set xlbook = nothing 
xlapp.quit 
Set xlApp = nothing
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-04-26 14:31:29

VBScript将在继续之前等待Excel代码完成执行。

票数 1
EN

Stack Overflow用户

发布于 2016-04-26 14:35:36

这个方法有用吗?(放在这里进行格式化)

代码语言:javascript
复制
fnShellExecuteVB
function fnShellExecuteVB()
        dim objShell
    dim o
        set objShell = CreateObject("shell.application")
    objShell.ShellExecute  "excel.exe", "C:\DUMMY\x.xlsx", "", "open", 1 

        set objShell = nothing
    end function
票数 1
EN

Stack Overflow用户

发布于 2016-04-27 08:19:26

VBA不是多任务,所以我不明白为什么它会在完成MainFlow之前返回到您的初始代码。

有时,一个DoEvents (在MainFlow中)使它看起来像是VBA一次执行两个任务,但它不是。(在某些情况下,它甚至会减缓进程,或使其更快,取决于问题)

如果你不喜欢Excel‘冻结’,做一个进度条,这样用户就不会认为Excel崩溃了,并且想要中止.

如果没有看到MainFlow代码,我就无法知道更多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36867626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档