听起来很简单吗?
我正在开发一个类项目,我需要来自一堆.gov网站的大量数据,我正在努力让它可靠地工作。
我能够在单元格中只有文本的表格上完美地工作。我能够用HTML对象的.innertext函数做到这一点(当然我在学校放了我的flashdrive,所以我不能看到我用过的东西,数字)。
无论如何,我的问题是,当它们包含指向其他页面的链接时,我无法从某些单元格中获取信息。例如,在此OPM站点https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/2017/general-schedule/上,有一个用于查看表单的Web选项,我无法将其复制到excel中。复制单元格中的文本工作正常,但我无法弄清楚如何复制 href 文本。
有没有人碰巧有这方面的经验,并希望能指出我正确的方向?
最佳,
像往常一样迷失的无能的家伙。
编辑:到目前为止,这是我的代码。我删除了关于href的部分,因为它们导致它无法工作,几乎肯定是不正确的。
Sub GetTables() Dim doc As HTMLDocument Dim htmTable As HTMLTable 昏暗的hpLink作为IHTMLElement 昏暗的数据 Dim x As Long,y As Long Dim oRow As Object,oCell As Object Dim oDom As Object:设置oDom = CreateObject(" htmlFile")
x = 1
y = 1
Set doc = New HTMLDocument
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "https://www.opm.gov/policy-data-oversight/pay-leave/salaries-wages/2017/general-schedule/"
.send
Do: DoEvents: Loop Until .readyState = 4
doc.body.innerHTML = .responseText
.abort
End With
Set htmTable = doc.getElementsByClassName("DataTable")(0)
With htmTable
Debug.Print .Rows(0).Cells(1).innerText
Debug.Print .Rows(6).Cells(1).innerText
Debug.Print .Rows(7).Cells(1).innerText
ReDim data(1 To .Rows.Length, 1 To .Rows(1).Cells.Length)
For Each oRow In .Rows
For Each oCell In oRow.Cells
data(x, y) = oCell.innerText
'Previously, I had attempted to use oCell.href to get the value
'but that did not work.
y = y + 1
Next oCell
y = 1
x = x + 1
Next oRow
End With
Sheets(1).Cells(1, 1).Resize(UBound(data), UBound(data, 2)).Value = data
End Sub