添加兩個引用您的VBA項目:
- Microsoft Internet控制
- Microsoft HTML對象庫
按鈕背後的HTML有一個id =附加文件,這使它很容易定位使用getElementById
這裏是工作示例:
Sub PushAddPhotoButton()
Dim IEexp As InternetExplorer
Set IEexp = New InternetExplorer
IEexp.Visible = True
IEexp.navigate "http://olx.bg/adding/"
Do While IEexp.readyState <> 4: DoEvents: Loop
Dim photoButton As HTMLInputElement
Set photoButton = IEexp.Document.getElementById("add-files")
If (Not photoButton Is Nothing) Then
photoButton.Click
Else
MsgBox "Button not found on web page."
End If
IEexp.Quit
Set IEexp = Nothing
End Sub
如果你的IE安全設置爲「高」的互聯網,那麼你不會得到一個對話框或錯誤。 IE窗口只會閃爍,然後消失。
更改爲:
波特蘭亞軍謝謝您的時間和幫助!我測試了它(IE8,VBA 7.1),但沒有默認瀏覽窗口打開,一旦我通過photoButton.Click步驟。 – Angel 2014-09-29 13:58:22
如果您逐步完成代碼(F8),它會起作用嗎?如果你沒有看到消息框,那麼它會找到該按鈕並點擊它。我想知道,如果您有任何第三方插件,如語言翻譯器將焦點從點擊中移開或延遲到足以使其無法運行。如果是這樣,您可能需要在點擊前等待一兩秒鐘。 FWIW,在我的機器上正常工作。 – 2014-09-29 14:51:35
我再次用F8測試,暫停(等待)之前的一步photoButton.Click超過5秒,但仍然是新(瀏覽)窗口不出現。我的機器上沒有第三方插件/我沒有/我知道的。我在另一臺電腦上測試過 - 沒有運氣。如果它對你的工作正常,那麼我開始考慮IE的配置,但沒有具體考慮。 – Angel 2014-09-29 21:11:12