添加两个引用您的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