2016-07-06 91 views
3

我正試圖編寫一個宏來訪問Web門戶網站的數據,我需要啓動該網站並點擊「在Excel中打開」按鈕。VBA Web自動化

我已經啓動了網頁,但我不能點擊鏈接。我的理解是,我應該能夠做一些類似的:

BrowswerObject.Document.ElementID.Click 

,但我不知道正確的元素和編碼是什麼。一個網頁,當我檢查元素時,它有這個代碼:

<A onclick=ur_Button_click(event); tabIndex=0 id=BUTTON_TOOLBAR_STANDARD_btn7_acButton title="Open in Excel" class=urBtnStd onkeydown=ur_Button_keypress(event); style="OVERFLOW: visible; TEXT-ALIGN: center" href="javascript:void(0);" ct="B" ti="0" st="" ocl="sapbi_page.sendCommandArray([['GUID','11',0],['NOUILOCK','X',0],['BI_COMMAND_TYPE','ABSTRACT',0]],event);">Open in Excel</A> 

任何人都可以指出什麼,我應該專注於此?

編輯: 我已經試過的getElementById,但我這個錯誤運行在:對象的 方法'文件「的IWebBrowser2」通過示例代碼失敗

是:

Dim ie As Object 
    Set ie = CreateObject("Internetexplorer.Application") 
    ie.Visible = True 
    ie.Navigate *Link* 

    ie.document.getElementById("BUTTON_TOOLBAR_STANDARD_btn7_acButton ").Click 
+0

你可以得到ElementbyID。 Browser.Document.getElementbyID(「BUTTON_TOOLBAR_​​STANDARD_btn7_acButton」)。單擊 –

+0

謝謝,我試過這個,但我遇到了錯誤,文檔方法無法識別。我更新了包含示例代碼,你知道如何解決這個問題嗎? –

+0

**(1)**爲每個[this](https://msdn.microsoft.com/en-us/library/ms970672.aspx)添加「Microsoft Internet控制」參考,並將Dim ie添加爲SHDocVw.InternetExplorer:設置ie = new SHDocVw.InternetExplorer'而不是使用通用的'Object'。 **(2)**使用'NavigateError'事件來查看'Navigate'是否成功。 **(3)**在VB編輯器中,在'getElementById'行設置斷點並使用Watch窗口查看當您嘗試調用'getElementById'時'ie.Document'實際上是否是有效的對象。 – cxw

回答

0

你是對的,它應該是這樣的。 。 。

For Each oHTML_Element In HTMLDoc.getElementsByTagName("input") 
If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For 
Next 

更多的http://vbadud.blogspot.com/2009/08/how-to-login-to-website-using-vba.html#gurMeXG3KmWvFUMx.99

看到按鈕的ID名稱是打F12當你在網站上的最好辦法。如果你使用Firefox和F12什麼也不做,請下載Firebug。

https://addons.mozilla.org/en-US/firefox/addon/firebug/

如果你使用IE瀏覽器並沒有任何反應,當你打F12,下載並安裝IE開發工具。

https://msdn.microsoft.com/en-us/library/bg182326(v=vs.85).aspx

這些工具可以讓你輕鬆地看到頁面後面的代碼,一切都是高度互動過,所以這些東西都是很容易使用。

祝你好運!