2017-12-04 4 views
1

Guten Morgen zusammen,Verschachtelte

Ich verwende das Advanced Beispiel aus den VBA-JSON Parser JSON-Dateien in Excel zu laden. Es funktioniert gut, aber ich möchte etwas Code ändern, um durch ein Zeichenfolgenarray zu durchlaufen, anstatt jedes Element zu buchstabieren.

Hier ist der Teil ich möchte ändern:

Dim Value As Dictionary 
Dim i As Long 

i = 0 
For Each Value In Parsed("values") 
    Values(i, 0) = Value("a") 
    Values(i, 1) = Value("b") 
    Values(i, 2) = Value("c") 
    i = i + 1 
Next Value 

Sheets("example").Range(Cells(1, 1), Cells(Parsed("values").Count, 3)) = Values 

Statt Rechtschreibung jeder Wert aus („a“, „b“, „c“), würde Ich mag es einfach zu durchlaufen Jedes Element, das ich in meinem String-Array habe, während es jeden Wert in der geparsten Liste durchläuft.

Dies ist der String-Array Ich habe:

Dim ParentArray As Variant 

ParentArray = Array("a", "b", "c", "d", "e") 

ich, dass es so etwas wie das vorstellen, aber ich bin nicht sicher, wie es funktioniert ...

i = 0 
For Each Value In Parsed(parent) 
    n = 1 
     For Each ArrItem In ParentArray 
      ArrItem = (ParentArray(1, n)) 
      Values(i, n - 1) = Value(ArrItem) 
      n = n + 1 
     Next ArrItem 
    i = i + 1 
Next Value 

Sheets(parent).Range(Cells(2, 1), Cells(Parsed(parent).Count, ColCount)) = Values 

Jede mögliche Hilfe sehr geschätzt werden.

Danke,

Phillip

Antwort

0

Ich denke, dass Sie es richtig haben, ist es nur eine Frage der Syntax:

For Each Value In Parsed(parent) 
    n = 1 
     For j = LBound(ParentArray) to UBound(ParentArray) 
      Values(i, n - 1) = Value(ParentArray(j)) 
      n = n + 1 
     Next j 
    i = i + 1 
Next Value 
+3

wahrscheinlich sicherer 'LBound' zu verwenden, anstatt das Array immer von der Annahme beginnt bei 0. –

+0

Guter Punkt, wird sich ändern! Danke ... –

+0

Das ist perfekt. Danke für die Hilfe (Ich war soooo nah ...) – stusic

Verwandte Themen