Notifications
Clear all

VBA SCRIPT EXCEL PARA JSON

2 Posts
1 Usuários
0 Reactions
957 Visualizações
(@ericksant)
Posts: 0
New Member
Topic starter
 

Prezados,
bom dia!

preciso de uma ajuda para criar um script em vba que leia um excel e com algumas informações específicas desse arquivo, monte um arquivo JSON... Segue a idéia:

Seguindo o arquivo em anexo, o objetivo é ler as seguintes colunas e pegar as informações de cada uma e ir montando o arquivo JSON...

Coluna E (Invoice Date) = "DataEmissaoNF": "conteudo",
Coluna G(Due Date) = "VencimentoNF":"conteudo",
Coluna H(Gross Amount)= "ValorTotalNF":"conteudo",
Coluna L(Pay Stat)= "StatusPag":"conteudo",
Coluna N(Supplier Number)= "NumForn":"conteudo",
Coluna O(Supplier Number Desc)= "NomeForn":"conetudo",
Coluna P(Invoice Number)= "NumeroNF":"conteudo"

Alguém consegue me ajudar ?

Obrigado...

 
Postado : 28/05/2018 7:15 am
(@ericksant)
Posts: 0
New Member
Topic starter
 

Achei esse código na internet, to com dúvida de como especificar um Range...

Alguém consegue ajudar ?

Option Explicit

Sub export_in_json_format()

    Dim fs As Object
    Dim jsonfile
    Dim rangetoexport As Range
    Dim rowcounter As Long
    Dim columncounter As Long
    Dim linedata As String

    
    ' change range here
   Set rangetoexport = Worksheets("Sheet1").Range( AQUI NÃO ESTOU CONSEGUINDO ESPECIFICAR MAIS DE 3 COLUNAS)
    
    Set fs = CreateObject("Scripting.FileSystemObject")
    ' change dir here
    
    Set jsonfile = fs.CreateTextFile("C:UsersErickDesktop" & "jsondata.json", True)
    
    linedata = "{""Output"": ["
    jsonfile.WriteLine linedata
    For rowcounter = 2 To rangetoexport.Rows.Count
        linedata = ""
        For columncounter = 1 To rangetoexport.Columns.Count
            linedata = linedata & """" & rangetoexport.Cells(1, columncounter) & """" & ":" & """" & rangetoexport.Cells(rowcounter, columncounter) & """" & ","
        Next
        linedata = Left(linedata, Len(linedata) - 1)
        If rowcounter = rangetoexport.Rows.Count Then
            linedata = "{" & linedata & "}"
        Else
            linedata = "{" & linedata & "},"
        End If
        
        jsonfile.WriteLine linedata
    Next
    linedata = "]}"
    jsonfile.WriteLine linedata
    jsonfile.Close
    
    Set fs = Nothing
    
    
End Sub


 
Postado : 30/05/2018 7:36 am