2016-11-10 26 views
-1

我需要将数据从文本文件上传到Excel。这是JSON数据。大约50kB。如果我经常将其上传到单元格中,Excel会冻结。有没有办法将文件的内容直接上传到VBA变量?如何直接从JSON文件上传内容

+0

所以,你要生JSON数据读入一个变量? – SBF

+0

是的。请查看主题[如何在Stackoverflow上提问](http://stackoverflow.com/help/how-to-ask),并向我们提供一些我们可以帮助您的代码示例。你也可以看看下面的链接:[在VBA中解析JSON](http://stackoverflow.com/questions/19360440/how-to-parse-json-with-vba-without-external-libraries),[阅读VBA中的文本文件](http://stackoverflow.com/questions/11528694/read-parse-text-file-line-by-line-in-vba) –

+0

是的,正好.. – Totallama

回答

1

发现,该解决方案是在这里,它的工作原理:

http://analystcave.com/

Dim fileName As String, textData As String, textRow As String, fileNo As Integer 
fileName = "C:\text.txt" 
fileNo = FreeFile 'Get first free file number 

Open fileName For Input As #fileNo 
Do While Not EOF(fileNo) 
    Line Input #fileNo, textRow 
    textData = textData & textRow 
Loop 
Close #fileNo 
0

你不想导入从文本到Excel但JSON到Excel。 如果您必须一次完成一次,您最好使用一些免费的在线工具将JSON转换为CSV。例如this one。 否则,如果你想建立的JSON文件解析到Excel中的一个工具,我建议你遵循this tutorial

Public Sub exceljson() 
Dim http As Object, JSON As Object, i As Integer 
Set http = CreateObject("MSXML2.XMLHTTP") 
http.Open "GET", "http://jsonplaceholder.typicode.com/users", False 
http.Send 
Set JSON = ParseJson(http.responseText) 
i = 2 
For Each Item In JSON 
Sheets(1).Cells(i, 1).Value = Item("id") 
Sheets(1).Cells(i, 2).Value = Item("name") 
Sheets(1).Cells(i, 3).Value = Item("username") 
Sheets(1).Cells(i, 4).Value = Item("email") 
Sheets(1).Cells(i, 5).Value = Item("address")("city") 
Sheets(1).Cells(i, 6).Value = Item("phone") 
Sheets(1).Cells(i, 7).Value = Item("website") 
Sheets(1).Cells(i, 8).Value = Item("company")("name") 
i = i + 1 
Next 
MsgBox ("complete") 
End Sub