从HTML表格中刮取单个值并将其插入到具有VBA的Excel单元格中

请参阅下面的代码。 我正在编写excel中不同寻常的货币对的列表,我希望用VBA来获取这些数据。 我只想将值本身插入到单元格中。 有没有人知道我在哪里错了? 我得到'运行时错误'91':对象variables或块variables未设置'。 我对VBA相对来说比较陌生,对此我有很多想法。

Sub ie_open() Dim wb As Workbook Dim ws As Worksheet Dim TxtRng As Range Dim ie As Object Set ie = CreateObject("INTERNETEXPLORER.APPLICATION") ie.NAVIGATE "http://www.barchart.com/quotes/forex/British_Pound/Costa_Rican_Colon/%5EGBPCRC" ie.Visible = True While ie.ReadyState <> 4 DoEvents Wend Set wb = ActiveWorkbook Set ws = wb.Sheets("Test Sheet") Set TxtRng = ws.Range("A1") TxtRng.Value = ie.document.getelementsbyname("divQuotePage").Item.innertext End Sub 

这是我试图抓取的数据:

谢谢。

我在抓网站上没有那么成功,但那种错误往往意味着你所寻找的东西不存在。 特别是,我没有在您提供的屏幕截图中看到divQuotePage

但如果你想要报价(793.19),你可以这样做:

 Dim V As Variant Set V = ie.document.getelementbyid("dtaLast") TxtRng = V.innertext 

这将工作。

Sub Test()Dim IE As Object

 Set IE = CreateObject("InternetExplorer.Application") With IE .Visible = True .Navigate "http://www.barchart.com/quotes/forex/British_Pound/Costa_Rican_Colon/%5EGBPCRC" ' should work for any URL Do Until .ReadyState = 4: DoEvents: Loop x = .document.body.innertext y = InStr(1, x, "Last Price") Z = Mid(x, y, 19) Range("A1").Value = Trim(Z) .Quit End With 

结束小组