不幸的是,我找不到适合我问题的解决方案。
我想从网站下载文件,这需要我设置一些设置来指定我想要下载的内容,然后点击一个按钮,这将给我"另存为"我的浏览器中的对话。
到目前为止,我已设法设置设置并通过InternetExplorer.Application单击VBA中的按钮,并通过Elements和Tags导航源代码。现在确切的问题是:如何保存文件? 文件URL(至少对我和我的VBA技能而言)是未知的。 " SendKeys-Way" (不确定它是否会起作用,因为Save-As-dialogue是其中一个安全事项)不是我想要使用的,因为代码将自动运行并且下载不会被控制好几天。
我有两个想法可以完成这项工作: 1.)找到一种方法来激活" AutoSave"在InternetExplorer.Application(我无法找到)。 2.)以某种方式找到一种方法来获取点击后将发送到Internet Explorer的文件URL。
这是我到目前为止的代码:
Dim sStart As String, sEnd As String
sStart = "01.08.2014"
sEnd = "31.08.2014"
Dim IEApp As Object
Dim IEdoc As Object
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = False
IEApp.Navigate "https://www.regelleistung.net/ip/action/abrufwert"
Do: Loop Until IEApp.Busy = False
Set IEdoc = IEApp.Document
Do: Loop Until IEdoc.ReadyState = "complete"
Dim myURL As String
Dim Datum As String
Dim text As String
Dim zeile As String
Dim i As Integer, iFiles As Integer
Dim z As Long, lztZeile As Long
iFiles = 0
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
With IEdoc
.getElementByID("label.von").Value = sStart
.getElementByID("label.bis").Value = sEnd
.getElementByID("uenbId").Value = "jlhPZzcrHoI="
For i = 0 To .getElementsByTagName("input").Length - 1
If .getElementsByTagName("input").Item(i).getAttribute("value") = "anzeigen" Then
.getElementsByTagName("input").Item(i).Click
Exit For
End If
Next
End With
所以......任何人都可以告诉我,我的两个想法之一是否可行,也许如何?还是有第三种方式我没有想到? 不知道确切的文件URL似乎使它变得复杂:/
非常感谢你!
答案 0 :(得分:0)
如果您想访问网站中的链接,请尝试此
For Each link In IEApp.Document.links
If InStr(link, "http://") > 0 Then ' when http:// tags are found ' use link.innerhtml for html text
' send the link to your download sub routine...
download_link(link )
End If
Next link