我要在网页“https://www.bseindia.com/markets/equity/EQReports/StockPrcHistori.aspx?expandable=7&scripcode=503100&flag=sp&Submit=G”上提取具有类似“日期|开盘价|高价|低价|收盘价|股票数量|交易数量|总成交量|可交付数量”的表格
下面是我的代码:
Sub Macro_BSE()
Application.ScreenUpdating = False
Dim FileName, Pathname As String
MP = ActiveWorkbook.Name
Workbooks.Add
WB2 = ActiveWorkbook.Name
Dim IE As New SHDocVw.internetexplorer
Const MAX_WAIT_SEC As Long = 5
Dim frm As Variant
Dim element, submitInput As Variant
Dim rowCollection, htmlRow As Variant
Dim rowSubContent, rowSubData As Variant
Dim anchorRange As Range, cellRng As Range
Dim start
Dim A As String
Dim hTable As HTMLTable
Dim clipboard As Object
IE.Visible = True
IE.navigate "https://www.bseindia.com/markets/equity/EQReports/StockPrcHistori.aspx?expandable=7&scripcode=503100&flag=sp&Submit=G"
While IE.readyState <> 4: DoEvents: Wend
Application.Wait (Now + TimeValue("00:00:02"))
IE.document.querySelector("#ContentPlaceHolder1_rdbDaily").Click
IE.document.querySelector("[name='ctl00$ContentPlaceHolder1$txtFromDate']").Value = "28/11/2018"
IE.document.querySelector("[name='ctl00$ContentPlaceHolder1$txtToDate']").Value = "28/12/2018"
IE.document.querySelector("[name='ctl00$ContentPlaceHolder1$btnSubmit']").Click
Application.Wait (Now + TimeValue("00:00:10"))
T = Timer
Do
On Error Resume Next
Set hTable = IE.document.querySelector("#ContentPlaceHolder1_spnStkData table")
On Error GoTo 0
If Timer - T > MAX_WAIT_SEC Then Exit Do
Loop While hTable Is Nothing
If Not hTable Is Nothing Then
clipboard.SetText hTable.outerHTML
clipboard.PutInClipboard
Workbooks(WB2).Worksheets("Sheet1").Range("A1").PasteSpecial
End If
End Sub
我现在无法提取该表。早些时候我能够从相同的代码中提取
请提出更改建议
最佳答案
您永远不会创建剪贴板对象的实例。在尝试将文本放入其中之前执行此操作。
Set clipboard = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
clipboard.SetText hTable.outerHTML
关于javascript - 从网页中提取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54977652/