【发布时间】:2015-12-16 09:38:31
【问题描述】:
使用 QTP 脚本执行的操作 --> 打开电子表格 abc.xlsm 后,当调用 Search 宏时,搜索窗口打开并在我点击“时在其中提供搜索条件” Enter”按钮,Excel 进入 Not Responding 状态(宏未完全运行),直到服务器本身给出以下信息:
408 超时请求
当通过手动调用电子表格执行上述相同操作时。它工作得很好。
下面是我用来打开电子表格并执行 Search 宏运行的代码..
Dim wShell
Set oexcel= CreateObject("Excel.Application")
oexcel.Application.Visible=True
Set obook=oexcel.Workbooks.Open("C:\abc.xlsm")
Set osheet=obook.Worksheets("Search")
oexcel.Application.Run("search") 'This is the Search macro that we are runnig
wait 2
Window("search").Activate
Set wShell = CreateObject( "WScript.Shell" )
wShell.SendKeys ("%") ' this is the input search criteria
wShell.SendKeys "{TAB}"
wait 2
wShell.SendKeys "{ENTER}"
wait 5
上面这行代码执行后,excel进入无响应状态。
但是,对于另一个电子表格,相同的代码可以很好地工作,例如 xyz.xlsm 对于相同的搜索宏。而且它总是手动运行良好。
【问题讨论】:
-
如果同一文件适用于另一个文件,则该文件或该文件的宏一定有问题。请仔细检查。
-
@ManishChristian:我的团队看不到 excel 文件的代码,问题是当手动打开它时,相同的 excel 文件可以正常工作...问题仅在 qtp 打开时出现那个文件
-
在哪一行显示错误,即在 Createobject 或打开等上。尝试放置断点并逐行检查并告诉我们
-
@user5612655 上面的任何代码行都没有显示错误...只是在上面的代码执行之后,excel进入了Not Responding状态并且由于没有执行进一步的代码而永远不会恢复