title: Parsing JSON to Excel using VBA
body: <p>I'm having some trouble with parsing JSON data in VBA. I have tried all of the examples online but I'm still unable to solve the issue. What I have managed to do is pull the JSON data into excel in the original format using another VBA code that pulled in data from another website. I've pasted the code that works below. It's not very clean and it has some duplication because I was just trying to see if I could pull the data. 
  All of the attempts I have tried to use VBA to parse the data have failed with a variety of errors depending on the approach I took. I'd be very grateful if someone could give me some advice on the simplest way to parse the data I've managed to pull. All I need is the data in columns which I can then use in other sheets in the worbook. I've attached a picture of the data that I've pulled. I have managed to parse JSON data from another webpage and in the code I included each column heading for the JSON data. For this new webpage, the JSON data is nested and there are loads of unique rows so I've not taken this approach. Many thanks</p>
  
  <pre><code>[Sub JSONPull()
  Dim WB As Workbook, ws As Worksheet, ws2 As Worksheet, qtb As QueryTable
  Dim FC As String, sDate As String, eDate As String, Dockmasterurl As String, Performance As Worksheet
  
  Set WB = Application.ThisWorkbook
  Set ws = WB.Sheets("Control")
  
  FC = ws.Range("B5")
  sDate = ws.Range("B14")
  eDate = ws.Range("B15")
  Dim sJSONString As String
      Dim vJSON
      Dim sState As String
      Dim aData()
      Dim aHeader()
      Dim vResult
  
  Dockmasterurl = "https://fc-inbound-dock-execution-service-eu-eug1-dub.dub.proxy.amazon.com/appointment/bySearchParams?warehouseId=" &amp; FC &amp; "&amp;clientId=dockmaster&amp;localStartDate=" &amp; sDate &amp; "T00%3A00%3A00&amp;localEndDate=" &amp; eDate &amp; "T08%3A00%3A00&amp;isStartInRange=false&amp;searchResultLevel=FULL"
  
  Set ws2 = Sheets("JSON")
  ws2.Cells.ClearContents
  
  Set qtb = ws2.QueryTables.Add("URL;" &amp; Dockmasterurl, ws2.Range("A1"))
  With qtb
      .WebSelectionType = xlEntirePage
      .WebFormatting = xlWebFormattingNone
      .WebPreFormattedTextToColumns = True
      .WebConsecutiveDelimitersAsOne = True
      .WebSingleBlockTextImport = True
      .WebDisableDateRecognition = False
      .WebDisableRedirections = False
      .Refresh BackgroundQuery:=False
  End With
  
  ws2.Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, textqualifier:=xlDoubleQuote, consecutivedelimiter:=False, comma:=True, trailingminusnumbers:=True
  ws2.Range("A:S").EntireColumn.AutoFit
  
  For Each qtb In ws2.QueryTables
      qtb.Delete
  
  Next
  
  End Sub][1]
  </code></pre>