我對VBA非常陌生,對HTML更是如此。我想要做的是能夠點擊一個按鈕,並從網站檢索當前餘額。理想情況下,我想單擊一個按鈕,並通過所有信用卡鏈接循環並拉取當前餘額,但如果我能夠將其用於一個站點,我將很高興。過去幾天我在網上搜索過,並且能夠湊齊下面的內容。請原諒我試過的一些註釋掉的部分。任何幫助,並在五歲的條件下可以理解,將不勝感激。Excel 2010/2013 VBA從網站導入當前餘額
那麼,我哪裏出錯了?謝謝!!順便說一下,我已經將以下兩行以及相關的「變暗」切換爲相同的結果。 '不支持此屬性或方法的對象。'
With ieDoc .getElementsByClassName("amount").innerText End With ' dd = IE.document.getElementsByClassName("amount").innerText
Sub CurrentBalance()
Dim IE As Object
Dim ieDoc As Object
Dim dd As Variant 'IHTMLElementCollection
' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
' Send the form data To URL As POST binary request
IE.Navigate "https://www.discovercard.com"
Do Until Not IE.Busy And IE.readyState = 4
DoEvents
Loop
Set ieDoc = IE.document
With ieDoc
.getElementsByClassName("amount").innerText
End With
' dd = IE.document.getElementByClassName("amount")
Range("B2").Value = ieDoc
' Clean up
Set IE = Nothing
Set objElement = Nothing
Set objCollection = Nothing
Application.StatusBar = ""
End Sub
我道歉,我應該添加HTML部分:
href="/cardmembersvcs/personalprofile/pp/MyProfilePage?ICMPGN=ACHOME_ACCTSUMM_PROFILE_TXT" title="Profile">Profile</a></li>
<!-- WT blank content -->
</ul>
</div>
</div>
<div class="card-balances">
<ul>
<li>Current Balance</li>
<li class="amount">$910.74</li>
在運行宏的計算機上安裝了哪個版本的Internet Explorer? IE9是支持'getElementsByClassName'的第一個IE版本' – barrowc
我可能是錯的,但'getElementsByClassName()'返回一個數組,不是?因此,必須像'.getElementsByClassName(「amount」)[0] .innerText'(或者在循環中使用'.getElementsByClassName(「amount」)[nthElement] .innerText')...對不起,我不是非常熟悉VB ... – ankhzet
@ankzhet'getElementsByClassName'返回一個IHTMLElementCollection,所以語法略有不同 - '.getElementsByClassName(「amount」)(0).innerText' - 但您的一般觀點完全正確 – barrowc