Tag: internet explorer

VBA WinHTTP从密码保护https网站下载文件

我试图使用WinHTTP从https密码保护的网站保存文件。 代码如下: Sub SaveFileFromURL() Dim FileNum As Long Dim FileData() As Byte Dim WHTTP As Object fileUrl = "https://www.website.com/dir1/dir2/file.xls" filePath = "C:\myfile.xls" myuser = "username" mypass = "password" Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5.1") WHTTP.Open "GET", fileUrl, False WHTTP.SetCredentials myuser, mypass, HTTPREQUEST_SETCREDENTIALS_FOR_SERVER WHTTP.Send FileData = WHTTP.ResponseBody Set WHTTP = Nothing FileNum = FreeFile Open filePath For Binary […]

使用VB自动化IE“保存目标为”

我试图用一个Excel的VBmacros从会员密码保护的网站下载Excel文件。 我正在使用“InternetExplorer”对象来打开浏览器窗口,login并浏览到正确的页面,然后扫描页面中我想要的链接。 使用Workbooks.Open(URLstring)不起作用,因为Excel不logging。 它将打开要求login的html页面,而不是实际的文件。 我的首选是使用VBmacros自动化在正确的链接上的Internet Explorer中右键单击“保存目标为”事件,但我不知道如何做到这一点。

我的模块结束后,Internet-Explorer将不会closures

我有这个从网站上抽出数据的macros。 我得到来自用户的input。 它工作没有错误,但由于我看不到的原因,IE不会closures和吸收我所有的RAM。 是否需要其他东西,而不是IE.Quit ? 这是分。 正如你所看到的,我最后closuresIE。 Public Cancel As Boolean Sub USGD() Dim IE As Object Dim iWsh As Worksheet Dim link As String Dim sDate As String Dim eDate As String Dim StationID As String Cancel = False With USGS .StartUpPosition = 0 .Left = Application.Left + (0.5 * Application.Width) – (0.5 * […]

在Excel VBA中,检查网页是否完全加载的方法是什么?

要暂停代码,直到网页完全加载,我几乎一直在使用下面的方法取得了巨大的成功。 Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop 但偶尔,在方法确定页面已完全加载之后,我会看到文本内容加载,因此内容不会被提取。 但是,如果我通过F8单步执行代码,则会每次提取内容。 这可以尽可能快地按下F8键。 那么如何在代码继续提取数据之前检查以确保页面及其所有内容都已完全加载? 在这两种情况下,IE都在不知不觉中运行。 不过,我已经试过这个可见的IE浏览器,实际上在我正在使用的网页上的这个特定位置的内容。 这是在Excel 2016中使用VBA脚本完成的。 具体的内容请求是这样写的: 'get item name from page and write it to the first cell on the first empty row available Set itemName = objIE.document.querySelector(".the-item-name") Worksheets("Results").Range("A1048576").End(xlUp).Offset(1, 0).Value = itemName.innerText 我已经通过Excel VBA阅读:在Internet Explorer中等待JavaScript执行,因为我认为可能在文档加载之后添加了值,以防止任何人抓取数据。 但是,我似乎无法确定任何可能会这样做的脚本。 这并不意味着它不在那里。 我现在还看不到它。 具有此问题的页面的具体示例是URL https://www.homedepot.ca/en/home/p.dry-cloth-refills-32—count.1000660019.html […]

在IE中打开Excel文件引发三次login?

我有一个经典的ASP网站,将一个表单发布到一个页面,然后生成一个Excel文件并传输给用户。 其实,我发送的是一个原始的HTML表格: Response.AddHeader "Content-Disposition", "inline; filename=file.xls" Response.AddHeader "Content-Type", "application/vnd.ms-excel" Intranet网站通过集成的Windows身份validation进行保护。 没有其他访问模式被检查。 用户使用他们的networking密码login,一切正常。 现在,当用户提交表单时,这个动作会导致另外两个login对话框。 你实际上可以从两者中取消并仍然打开文件。 事实上,如果你把你的凭据,它需要你input他们四次! 如果选中“记住密码”,则不会影响login的需要。即使在IE的“受信任的站点”部分列出了URL,也会发生这种情况。 任何想法,我可以做些什么来最小化这个? PS:不知道,但似乎是一个相对较新的问题,意味着更新版本的IE(7/8),Office(2007+)和Windows(Vista / 7)。 更新:使用Fiddler,我可以看到一个名为“User-Agent:Microsoft-WebDAV-MiniRedir / 6.1.7600”的尝试连接,并得到401.2'ed。 是IE卸载下载到其他不正确的身份validation? UPDATE2:有趣的是,Firefox没有这个function。 它正确地接收和解释事物: HTTP/1.1 200 OK Date: Mon, 21 Feb 2011 19:25:26 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Content-Disposition: inline; filename="SavingsReport_4Q2010.xls" Content-Type: application/vnd.ms-excel Content-Length: 111851 Cache-control: private

excel VBA代码在join时起作用,但在运行时不起作用

当我运行它时,我有下面的行失败,但是当我在这行之前中断应用程序,它工作正常。 I = InStr(html_document.body.innerHTML, "EPG") 我是一个很长的,已经初始化了,应该可以正常工作。 html_document是IE.document,通过初始化 Set IE = New InternetExplorer 在这行之前放置一个断点使其工作,我拿起正确的字符位置。 在这行之后放置一个断点, I保持为0。 任何想法将非常感激。

在IE中打开Excel .xlsx文件,并将其embedded的超链接返回到文件服务器

我有一个内部网站,允许用户在浏览器中打开文件(通过提示下载)。 其中一个文件是一个.xlsx工作簿,其中包含指向.xlsx工作簿所在文件服务器上不同文件位置(.pdf,.docs )的超链接。 看来工作簿的文件服务器path被replace为“Temporary Internet Files / Content.IE5 /”path,导致在Excel中警告“无法打开指定的文件”。 我尝试下载Excel文档,然后按照链接,但他们仍然打开在临时互联网的位置 编辑: 例如,当把鼠标hover在Excel中的超链接上时,它们是:“file:/// C:\ Documents and Settings \%username%\ Local Settings \ Temporary Internet files \ Content.IE5 \ 40WSS3CB \”+ 当他们应该阅读:“file:/// \ servername \ Departments \ Read \”+文件名 我怎样才能仍然打开浏览器中的Excel文件,并保留超链接,并让他们不能被replace临时互联网文件path? 有人能指出我的方向吗? 谢谢!

VBA与网页上的单选button进行交互

编辑:几个月后,我再次尝试使用我第一次尝试相同的语法(下面张贴)。 出于某种原因,它的工作! 也许除了我的语法之外的东西导致无效… END EDIT 我一直在寻找论坛几个小时,现在试图find解决这个问题,但我没有尝试的东西工作。 我正在使用VBA来自动化在SurveyMonkey上创build调查的过程。 到目前为止,我已经能够: login到我的帐户, 点击几个超链接来创build一个新的响应收集器, 命名收集器, 转到collections夹设置, 然后,select四个单选button中的三个来更改收集器设置。 问题不在于我无法select单选button; 我的代码select前三个button就好了。 令我感到困惑的是第四个button不会改变! 我对每个button使用相同的过程,所以我不知道为什么最后一个button不会select。 这是我的代码部分: objIE.Document.getElementById("rdlResponseType_1").Click 'Allow multiple responses = Yes objIE.Document.getElementById("rdlResponseEdit_1").Click 'Allow Responses to be Edited = Yes objIE.Document.getElementById("rdlThankyou_1").Click 'Display a "Thank You" page? = Yes objIE.Document.getElementById("rdlCompleteOpt_1").Click 'Survey Completion = Close Window 这是单选button的HTML: <table border="0" cellpadding="0" cellspacing="0" style="width: 100%;"> <tr id="CompleteOptDesc"> […]

1px vs瘦,IE vs Excel问题

我有一个HTML表格,在IE和Excel(用于报告) 如果我将边框宽度设置得较薄,则会在IE中显示2px边框,并在Excel中显示1px边框。 但是,如果我将它设置为1px,它在IE中显示一个1px边框,在Excel(???)中显示一个2px边框。 我怎么能让他们都显示1px边框,因为它看起来可怕的2px边框。

使用Excel将信息提交给网站表单并parsing结果

下午好, 我试图设置一个自动化一个内部网站的报告的手段。 我在大学教书,需要通过大学提供的界面从教师可访问的数据库中提取一些数据。 所以,我试图访问我有权查看的资料,需要login才能看到,但不想重复这些步骤数百次。 我的想法是: 1)使用IE凭证login学院提供的界面(所以系统知道我是授权的)。 2)提供优秀的学生身份证号码列表,我试图跟踪 3)使用VBA遍历每个ID,执行以下步骤: 从Excel列表中inputID号码到适当的表格文本框中 点击“提交”button 点击结果页面上的辅助“提交”button 复制出现的HTML文本页面,并parsing出我需要的信息 移到下一个数字并重复 我已经尝试了一些我见过的其他选项(如VBAinput数据在线和提交表单 ),但是在语法上出现错误。 我试图引用的网站上的HTML编码的相关部分是: <FORM ACTION="action" METHOD="POST" NAME="idinputform"> Enter Number Here: <INPUT TYPE="number" NAME="ID_NUM" SIZE="9" MAXLENGTH="9"> <INPUT TYPE="hidden" NAME="refresh_proc" VALUE="menu_1"> <INPUT TYPE="submit" VALUE="Submit"> <INPUT TYPE="reset" VALUE="Reset"> </FORM> 我在Excel中得到的是: Sub QueryInfo() Application.ScreenUpdating = False Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.Navigate "website address" […]