Я в возрасте 5 лет тратил часы, пытаясь решить эту проблему, и часами пытался понять это, вот так:)
Я пытаюсь извлечь некоторые таблицы из этой страницы компаниина Market Screener с использованием метода CreateObject.
Взяв в качестве примера таблицу (25) (этот) ( снимок экрана , я пытаюсь извлечь таблицу "Тип бизнеса"и в первом столбце перечислены типы бизнеса (не столбцы 2016, 2017 и Delta).
Я нашел главный старт в этом потоке 2016 stackoverflow
Dim oDom As Object: Set oDom = CreateObject("htmlFile")
Dim x As Long, y As Long
Dim oRow As Object, oCell As Object
Dim vData As Variant
Dim link As String
link = "https://www.marketscreener.com/COLUMBIA-SPORTSWEAR-COMPA-8859/company/"
y = 1: x = 1
With CreateObject("msxml2.xmlhttp")
.Open "GET", link, False
.send
oDom.body.innerHTML = .responseText
End With
With oDom.getElementsByTagName("table")(25)
ReDim vData(1 To .Rows.Length, 1 To 11) '.Rows(1).Cells.Length)
For Each oRow In .Rows
For Each oCell In oRow.Cells
vData(x, y) = oCell.innerText
y = y + 1
Next oCell
y = 1
x = x + 1
Next oRow
End With
Sheets(2).Cells(66, 2).Resize(UBound(vData), UBound(vData, 2)).Value = vData
Это вроде работает, но возвращает беспорядочную таблицу со всеми данными в ней в одной ячейке, вот так, но перемешалось в одну ячейку
Затем я нашел другой твикон-лайн, который предлагает следующее: это позволяет копировать и вставлять, и позволить Excel разобраться, как его вставить, и это тоже работает:
With oDom.getElementsByTagName("table")(25)
Dim dataObj As Object
Set dataObj = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
dataObj.SetText "<table>" & .innerHTML & "</table>"
dataObj.PutInClipboard
End With
Sheets(2).Paste Sheets(2).Cells(66, 1)
Что создает этот результат своего родаправильно, но не только значения - яЯ пытаюсь вставить специальное, без какого-либо форматирования.
Я немного схожу с ума и понимаю концепцию, но на данный момент полностью застрял.Есть ли способ сделать это?Я могу скопировать его на таблицы на этой странице и на другие вкладки, если у меня есть преимущество.
Любая помощь с благодарностью,
С наилучшими пожеланиями, Пол