所以我有一种情况需要从URL填充特定的列(基本上,对该URL的get请求将给出一个数字列表)。
我是宏的新手,但我想建立一个系统,我将点击一个按钮,然后将读取数据并填充列。
修改
我有一个网址,让我们说161.202.176.187/importData.txt
,它有以下数据。
12345
67890
12345
09876
87653
14214
14566
46131
12456
35098
现在在我的excel中,我有一个这样的按钮:
我需要使用数据填充列A1
。
答案 0 :(得分:1)
如此提取?
Windows机器:
将引用添加到microsoft xml和html对象库VBE>工具>参考文献
此外,需要将XMLHTTP60调整(60位)到适合您的Excel版本。
' "http://161.202.184.168/excelimport.txt"
Sub Getinfo3()
Dim http As New XMLHTTP60
Dim html As New HTMLDocument
With http
.Open "GET", "http://161.202.184.168/excelimport.txt", False
.send
html.body.innerHTML = .responseText
End With
Dim returnArray() As String
returnArray = Split(html.body.innerText, " ")
Dim currentItem As Long
For currentItem = LBound(returnArray) To UBound(returnArray)
ActiveSheet.Cells(currentItem + 1, 1) = returnArray(currentItem)
Next currentItem
End Sub
Internet Explorer版本(需要参考Microsoft Internet Controls和html对象库
Public Sub scrapeaIE()
Dim appIE As Object
Dim ihtml As Object
Set appIE = CreateObject("internetexplorer.application")
With appIE
.Visible = True
.navigate "http://161.202.184.168/excelimport.txt"
While .Busy = True Or .readyState < 4: DoEvents: Wend
Set ihtml = .document
End With
Dim returnArray() As String
returnArray = Split(ihtml.body.innerText, vbNewLine)
Dim currentItem As Long
For currentItem = LBound(returnArray) To UBound(returnArray)
ActiveSheet.Cells(currentItem + 1, 1) = returnArray(currentItem)
Next currentItem
appIE.Quit
Set appIE = Nothing
End Sub
包括使用两者的参考文献(Excel 2016)
编辑:
对于Mac:
您可以使用AppleScript and MacScript
执行某些操作运行代码的OP开始在第一次运行后使用每个新URL返回缓存数据。与Excel-VBA REST WCF works on 1st call, but subsequent calls return cached (non-current) data
相同决议是补充:
.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
在
.send
答案 1 :(得分:0)
听起来像PowerQuery的工作,取决于您的Excel版本,它是内置的,或作为Microsoft的加载项提供。因此,对于Excel 2016,您只需单击数据选项卡,然后单击新查询&gt;来自其他来源&gt;从Web然后按照对话框和工作完成。
您可以从here
了解更多信息