我在使用Excel VBA时遇到了一些麻烦,想知道是否有人可以帮助我。
我正在从网页导入表格,我想知道是否可以将表格分配给变量,而不是将表格发送到电子表格。
我正在使用的命令是:
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www4.bcb.gov.br/pec/poupanca/poupanca.asp", _
Destination:=Range("$A$1"))
.WebSelectionType = xlAllTables
.Refresh BackgroundQuery:=False
End With
这样做,表被导入到单元格A1。 我宁愿导入一个变量以在我的代码中使用,而不将表格中的所有数据绘制到电子表格中。
有可能吗?
答案 0 :(得分:0)
Querytable不是要将信息存储在变量中,而是写入工作表。
如果要使用变量,请考虑如下方法(GET请求,其中表位于变量hTable
中)
Option Explicit
Public Sub GetTable()
Dim sResponse As String, hTable As Object
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "http://www4.bcb.gov.br/pec/poupanca/poupanca.asp", False
.send
sResponse = StrConv(.responseBody, vbUnicode)
End With
sResponse = Mid$(sResponse, InStr(1, sResponse, "<!DOCTYPE "))
With CreateObject("htmlFile")
.Write sResponse
Set hTable = .getElementsByTagName("table")(0)
End With
MsgBox TypeName(hTable)
End Sub
注意:方法改编自我的回答here。一般方法的原作者我无法归因。