由于代理设置不正确,Excel宏无法正常运行

时间:2019-03-19 14:10:39

标签: excel vba web-scraping proxy

问题描述:

我的同事一个月前创建了一个基于Excel的应用程序,该应用程序在他的笔记本上运行良好。奇怪的是,同一工作簿无法在其他任何人的PC上运行。在未连接到AD的虚拟Windows 10会话中运行时,工作簿也可以按预期工作。我们都在使用连接到相同AD服务器的公司计算机,因此我看不到为什么代码在他的计算机上而不在其他计算机上起作用。

我到目前为止发现的内容:

  • 问题源于根本没有意义的代理设置。我在一家总部位于瑞士的德国公司工作,Excel中当前使用的代理显示为我们公司的中文防火墙。
  • Windows设置中未设置服务器(Windows 7仍在使用中)。
  • Netsh不显示任何代理:
  

PS C:> netsh winhttp显示代理

     

当前WinHTTP代理设置:

     

直接访问(无代理服务器)。

  • 浏览器互联网流量未使用任何代理

我假设有一些专门针对Excel设置的设置,我只是找不到,也没有其他想法去找。

代码

Excel宏在不更改任何其他设置的情况下创建WinHttpRequest对象,如以下代码摘录所示:

Set httpReq = CreateObject("WinHttp.WinHttprequest.5.1")
httpReq.setTimeouts -1, -1, -1, 600000
httpReq.Open "GET", url, False
httpReq.send request
myResponse = httpReq.ResponseText

url并不指向代理服务器,但包含本地​​IP地址。

在此问题上的任何帮助将不胜感激。预先感谢!

1 个答案:

答案 0 :(得分:1)

您可以更改代理设置。例如,

httpReq.SetProxy(1)

此选项可用于指定应直接访问所有HTTP和HTTPS服务器。

通过js版本添加信息here