2016-11-10 50 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