none
Erro em tempo de execução 13 Tipos incompatíveis RRS feed

  • Pergunta

  • Ao tentar executar a macro abaixo ocorre o erro em tempo e execução 13. Alguém poderia me ajudar com uma solução. Já

    vi em outras soluções neste forum que está relacionado ao Valor não definido de uma cédula. Mas não consigo achar uma solução.

    -------------------------------------------------------------------------------------

    Sub GetJSON() Set Myrequest = CreateObject("winhttp.winHttpRequest.5.1") Myrequest.Open "GET", "https://api.bitvalor.com/v1/exchanges.json" Myrequest.send 'MsgBox Myrequest.responseText Dim JSON As Object Dim i As Integer Set JSON = JsonConverter.ParseJson(Myrequest.responseText) i = 3 For Each Item In JSON Sheets(1).Cells(i, 1).Value = Item("MBT")("name") Sheets(1).Cells(i, 2).Value = Item("MBT")("color") Sheets(1).Cells(i, 3).Value = Item("MBT")("username") Sheets(1).Cells(i, 4).Value = Item("MBT")("url") Sheets(1).Cells(i, 5).Value = Item("MBT")("url_book") i = i + 1 Next MsgBox ("complete") End Sub


    segunda-feira, 25 de setembro de 2017 20:30

Todas as Respostas

  • Boa tarde,

    Este erro está acontecendo porque seu JSON não possui o atributo username.
    Remove a linha: 
    Sheets(1).Cells(i, 3).Value = Item("MBT")("username")

    Deixando assim:

    Sheets(1).Cells(i, 1).Value = Item("MBT")("name")
    Sheets(1).Cells(i, 2).Value = Item("MBT")("color")
    Sheets(1).Cells(i, 3).Value = Item("MBT")("url")
    Sheets(1).Cells(i, 4).Value = Item("MBT")("url_book")


    Espero ter ajudado!

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.


    • Editado Silvaney quinta-feira, 28 de setembro de 2017 17:01
    • Sugerido como Resposta Silvaney quinta-feira, 28 de setembro de 2017 17:54
    quinta-feira, 28 de setembro de 2017 16:59
  • Boa tarde,

    Imagino que deveria tratar para o caso do json vir nulo, algo parecido com isso:

    if isnull(Item("MBT")("username")) then

    Sheets(1).Cells(i, 3).Value = ""

    else

    Sheets(1).Cells(i, 3).Value = Item("MBT")("username")

    end if


    quinta-feira, 28 de setembro de 2017 19:17