2017-03-10 6 views
-1

Ich wollte mit VBA eine Excel-Datei von einer URL herunterladen. Leider habe ich nur die URL, die die "Download-Schaltfläche" enthält, denn sobald ich auf die Schaltfläche klicke, wird die URL nicht .../file.xls sondern eine seltsame, die, wenn ich gehe, den Download nicht aktivieren wird verarbeiten.
Also fragte ich mich, ob es eine Möglichkeit gäbe, VBA zu dieser URL gehen zu lassen und auf die Schaltfläche zu klicken, um die Datei herunterzuladen.VBA: gehen Sie zu einer URL und klicken Sie auf eine Schaltfläche, um eine Datei downlod

Vielen Dank im Voraus.

Update:

Dies ist der Code:

Dim IE As InternetExplorer 
Sub Test() 

' Create InternetExplorer Object 
Set IE = CreateObject("InternetExplorer.Application") 
' You can uncoment Next line To see form results 
IE.Visible = True 

' Send the form data To URL As POST binary request 
IE.navigate "http://webpage.com/" 

' Wait while IE loading... 
While IE.Busy 
    DoEvents 
Wend 

Set objInputs = IE.Document.getElementsByTagName("link") 

For Each ele In objInputs 
    If ele.Title Like "List of control sheets having one or more declared Then alert(s)." Then 'Text on the link 
     ele.Click 
    End If 
Next 

End Sub 

Aber ich denke, das Objekt I'aiming bei mehr ist wie ein Link als eine Schaltfläche, weil in der Quelle, nur einige sind Linien davon:

<LINK rel=stylesheet type=text/css href="/frm/wdk/theme/documentum/css/webforms.css"> 

Antwort

1

Sie diese Seite mit IE zugreifen können:

Dim ie As Object 
Set ie = CreateObject("InternetExplorer.application") 
With ie 
    .Visible = True 
    .Navigate ("http://yourlink") 
    While .Busy Or .ReadyState <> 4: DoEvents: Wend 
End With 

Und dann verwenden Sie den Befehl SendKeys "{TAB}", True auf die Schaltfläche gehen und den Befehl SendKeys "{ENTER}", True zur Beantwortung auf es

+0

Dank klicken. Wie genau sollte ich SendKeys "{TAB}" verwenden? Ich meine, wie könnte ich VBA wissen lassen, über welchen Knopf ich rede? – Francis

+0

Tatsächlich müssen Sie in diesem Fall manuell zählen, wie viele Registerkarten Sie benötigen, um den Schaltflächenfokus zu erreichen, Sie können auch diesen Befehl ie.Document.All ("ButtonID") verwenden. Klicken Sie, aber Sie müssen den ID-Wert des Buttons kennen Sie sehen auf HTML-Quellcode –

+0

Das ist wirklich cool. Wenn zum Beispiel die Position der Mitte der Schaltfläche 3 (von links nach rechts) und 5 (von unten nach oben) ist, wie soll ich diese Codezeile schreiben? – Francis

Verwandte Themen