从定义的字符串导入HTML的问题

时间:2015-06-05 13:55:00

标签: javascript html vba excel-vba excel

我有一段代码可以加载网站并点击打开弹出窗口的链接。此弹出窗口的内容是我需要导入Excel(VBA)的内容,因此我可以操作该数据。问题是此链接的网址始终会更改,但链接始终位于同一位置。

以下代码将当前活动的IE实例的URL定义为“IEURL”。我想使用代码导入表但我收到错误“运行时错误'1004':此站点的地址无效。请检查地址并重试”。

Sub Button1_Click()

Dim objIE As SHDocVw.InternetExplorer
Dim IEURL As String
LastRow = Range("A" & Rows.Count).End(xlUp).Offset(1).Row

Set objIE = New InternetExplorerMedium
'apiShowWindow objIE.hwnd, SW_MAXIMIZE
objIE.navigate "http://www.youtube.com"
objIE.Visible = True
Do While objIE.READYSTATE <> 4 And objIE.Busy
DoEvents
Loop

'Call Sleep
Application.Wait (Now + TimeValue("0:00:5"))

IEURL = objIE.LocationURL


ThisWorkbook.Sheets("Sheet1").Activate
Rows("6:250").Delete
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;IEURL", _
Destination:=Range("a6"))

.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = False
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With

End Sub

任何人都可以帮助我吗? 附:我刚刚在这里使用YouTube作为示例,因为它演示了与我尝试导入的实际网站相同的问题

1 个答案:

答案 0 :(得分:0)

objIE.LocationURL属性返回一个字符串,您将其存储在字符串变量中。当您稍后尝试使用该变量时,您应该将其附加到字符串,而不是仅仅将变量的名称放在字符串中。所以改变

With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;IEURL", _

With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;" & IEURL, _

btw,在Excel 2013中,您的示例代码在IEURL = objIE.LocationURL

处失败