Я создал скрипт, который извлекает данные из таблицы веб-сайта и копирует их на лист Excel. В основном это делает следующее
- Переходит по ссылке,
- заполните текстовое поле и выберите значение из раскрывающегося списка, нажмите кнопку,
- Получает данные. Первые две части работают отлично, однако очистка данных не работает. Ниже мой код
Private Sub CommandButton1_Click()
Sheets("Sheet1").Select
Range(Cells(7, 1), Cells(ActiveSheet.UsedRange.Rows.Count, ActiveSheet.UsedRange.Columns.Count)).Delete
'Sheets("Sheet1").Range("A3") = "Symbol"
'Cells(3, 1).Font.Bold = True
Dim i As Long, strText As String
Dim doc As Object, hTable As Object, hBody As Object, hTR As Object, hTD As Object
Dim tb As Object, bb As Object, Tr As Object, Td As Object
Dim y As Long, z As Long, wb As Excel.Workbook, ws As Excel.Worksheet
'Shell "RunDll32.exe Inetcpl.cpl,ClearMyTracksByProcess 11"
Set wb = Excel.ActiveWorkbook
Set ws = wb.ActiveSheet
Set ie = CreateObject("InternetExplorer.Application")
my_url = "https://www1.nseindia.com/products/content/equities/equities/eq_security.htm"
With ie
.Visible = True
.navigate my_url
.Top = 50
.Left = 530
.Height = 400
.Width = 400
Do Until Not ie.busy And ie.readyState = 4
DoEvents
Loop
End With
' Input the userid and password
'ie.document.getElementById("symbol").Value = Worksheets("Sheet1").Range("B1")
ie.document.getElementById("symbol").Value = TextBox1.Text
ie.document.getElementById("dateRange").selectedIndex = "4"
ie.document.getElementById("get").Click
While ie.busy
DoEvents
Wend
Set doc = ie.document
Set hTable = doc.getElementsByTagName("table")
y = 2 'Column B in Excel
z = 3 'Row 3 in Excel
For Each tb In hTable
Set hHead = tb.getElementsByTagName("th")
For Each hh In hHead
Set hTR = hh.getElementsByTagName("tr")
For Each Tr In hTR
Set hTD = Tr.getElementsByTagName("th")
y = 1 ' Resets back to column A
For Each th In hTD
ws.Cells(z, y).Value = th.innerText
y = y + 1
Next th
DoEvents
z = z + 1
Next Tr
Exit For
Next hh
Exit For
Set hBody = tb.getElementsByTagName("tbody")
For Each bb In hBody
Set hTR = bb.getElementsByTagName("tr")
For Each Tr In hTR
Set hTD = Tr.getElementsByTagName("td")
y = 1 ' Resets back to column A
For Each Td In hTD
ws.Cells(z, y).Value = Td.innerText
y = y + 1
Next Td
DoEvents
z = z + 1
Next Tr
Exit For
Next bb
z = z + 1
Exit For
Next tb
End Sub
Кто-нибудь может мне помочь .. !!