AppActivate返回excel

时间:2014-02-21 14:24:42

标签: excel vba excel-vba

我正在编写代码从网站下载文件,但我必须使用Chrome。 我使用shell命令在所需的URL中打开谷歌浏览器,在shell命令之后我尝试使用AppActivate命令,但它无效。

命令如下

Sub DL(URL as string)

    Shell ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe -url URL")
    AppActivate ("MicroSoft Excel - SIEVE")

End Sub

SIEVE是我工作簿的名称。我尝试过只使用MicroSoft Excel,Excel和其他组合,但只能使用MicroSoft Excel和Microsoft Excel - SIEVE我没有收到错误信息。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

我认为您不需要包含工作簿的名称。

试试这个:

Sub DL(URL As String)

Shell ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe -url URL")
AppActivate "MicroSoft Excel"

End Sub

如果您打开了多个工作簿并且查看了错误的工作簿,则可以始终在AppActivate之前插入此工作簿:

Workbooks("SIEVE").Activate

修改

AppActivate似乎不起作用的原因是因为它太快了。代码会在Chrome有机会完全打开之前执行,因此Chrome会在 AppActivate发生后激活。我看到您的最佳选择是使用Application.Wait()并等到Chrome加载完毕。像这样:

Sub DL(URL As String)
    Shell ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe -url URL")

    Application.Wait (Now + TimeValue("0:00:10")) '<~~ Waits ten seconds.

    AppActivate "MicroSoft Excel"
End Sub

答案 1 :(得分:-1)

你可以试试这个:

On Error Resume Next
**AppActivate Application.Caption**
On Error GoTo 0