我最近剛開始看在Excel中訪問通過IE網頁VBA的應用程序,並與HTML編碼沒有經驗,所以解決這個可能很簡單...權限試圖在IE
我的代碼(見下文)是應該導航到一個網站,訪問表和數據拔出到Excel中的一個部分。然而,在看似隨機的時間,無論我可以確定的原因,對象變量'TDelement'都會以某種方式鎖定,並且當我試圖通過循環訪問下一個單元格時,Excel會拋出Error 70:Permission Denied。它不會一直髮生,它不會發生在同一個表格單元格上。
Dim IE As Object
Dim TDElements As Object
Dim TDelement As Object
Dim Web_Address As String
Dim DteTm As Date
Web_Address = "http://www.bom.gov.au/fwo/IDQ65388/IDQ65388.040762.tbl.shtml"
' Access the Webpage
IE.Navigate Web_Address
' Wait while IE loading...
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
' Find and Set Data Table Cells/object within webpage
Set TDElements = IE.document.GetElementsByTagName("td")
' Pull each TDElement (table cell) from TDElements
Rw = 1
Col = 2
For Each TDelement In TDElements
If Col = 1 Then
Col = 2
ElseIf Col = 2 Then
Col = 1
End If
If Col = 1 Then
DteTm = TDelement.innerText
Worksheets(1).Cells(Rw, Col).Value = DteTm
ElseIf Col = 2 Then
Worksheets(1).Cells(Rw, Col).Value = TDelement.innerText
End If
If Col = 2 Then
Rw = Rw + 1
End If
Next
如果錯誤是要循環的一個週期內發生,它發生在任
DteTm = TDelement.innerText
或
Worksheets(1).Cells(Rw, Col).Value = TDelement.innerText
,
取決於If...Then
語句的結果,明顯。
有點谷歌搜索後,一般concensus似乎是錯誤70有關的命名與變量衝突(即試圖使用相同的變量名兩次)。正因爲如此我嘗試添加Set TDelement = Nothing
Next
之前在每個循環的結束清除變量,但它並沒有解決這個問題(這並不讓人吃驚,我從未有過的變量的問題在這樣的循環之前)。
它可能是與.innerText
?即使是上了我與問候從IE中提取數據看到幾乎所有的論壇帖子中提到的,它不是在所有的Excel幫助文件中提到...
任何幫助,將不勝感激。
另外,道歉,如果我錯過了什麼,它已經有一段時間,因爲我已經發布...讓我知道如果你需要anyhting更多的細節。 – 2013-03-12 02:47:17