ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VBA在excel与其他程序窗口切换的时候,很容易"无响应",怎么解决

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-1-13 12:08 | 显示全部楼层 |阅读模式
SetForegroundWindow FindWindow(vbNullString, target)
VBA在excel与其他程序窗口切换的时候, 在其他程序运行的时候excel就很容易"无响应",怎么解决

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-13 13:19 | 显示全部楼层
写的程序是抓取excel里的信息,粘贴到其他系统里查询,并把查询的结果复制回exceli里,由于信息量大需要不停的来回切换。

程序尝试运行了半小时,切换到其他程序查询数据,然后exceli全程开始“无响应”,半小时结束后,excel回过神来, 数据的确是都复制回excel里了,

目的达到,但是运行的半个小时里,exceli一直显示无响应并显示成白屏状,,

我写的另外一个类似程序也是这个功能,过程还要复杂一些,但是运行时exceli是可见的,一切正常

每句代码都仔细检查,对于一些切换的适当加长了 sleep, 但是这次的这个,不管怎么弄,总是 “无响应”状态。 (其实后台数据一切正常)

TA的精华主题

TA的得分主题

发表于 2016-3-16 22:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2016-4-19 13:21 | 显示全部楼层
测试操作:
1. 开一新的webpage 窗口 www.baidu.com
2. 点击任意的 url 链接 开4个新的选项卡Tabs webpage 窗口
点击第一个选项卡
3. 开一新的webpage 窗口 www.excelhome.com
4. 点击任意的 url 链接 开4个新的选项卡Tabs webpage 窗口
5. 开1个新的选项卡Tabs webpage 窗口 输入 网址url : http://sp.drugadmin.com/drugWebQueryEmbed.jsp
点击第一个选项卡

6. VBA 模块 贴上以下程序
7. 执行 VBA 模块 程序
8. 成功激活指定窗口 显示页面在视试窗最上层 自动带入输入资料



Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
Dim dWinFolder As New ShellWindows
Sub 激活指定窗口()
    Dim mShellwindows As New ShellWindows
'   Dim ie As InternetExplorer
    Set ie = New ShellWindows
'''''''''''''''''''''On Error Resume Next
    For Each web In ie
        If InStr(1, web.FullName, "iexplore.exe", vbTextCompare) > 0 Then
         h = web.hwnd
        SetForegroundWindow h
        Application.Wait Now() + TimeValue("0:0:01")
                SendKeys "^{TAB}", True     ' Send Ctrl-Tab to IE to switch to next tab
                Application.Wait Now() + TimeValue("0:0:01")
            If web.LocationURL = "http://sp.drugadmin.com/drugWebQueryEmbed.jsp" Then
                Exit For
            End If
        End If
    Next

   激活指定窗口虽然Tabs标签选项卡 不是显示的网页页面 仍然 可以有效的 输入资料
            ''''            web.Visible = True     ''有无此行均可以
            ''''            Application.Wait Now() + TimeValue("0:0:01")
            ''''           web.Document.Focus = True     ''有无此行均可以
            web.Document.getElementById("piatscode5").Value = "20"
            web.Document.getElementById("captcha").Value = "20"
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 05:39 , Processed in 0.040662 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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