2017-05-17 3 views
0

Ich habe folgende mehrdimensionales Array StrukturOutput Array Inhalt ohne jedes Element der Auswahl

Type Wedge 
    C407    As Long 
    C417    As Long 
    C507    As Long 
    C516    As Long 
    C607    As Long 
    C617    As Long 
    C707    As Long 
    C716    As Long 
    C807    As Long 
    C817    As Long 
    C907    As Long 
    C916    As Long 
End Type 

Das Obige hat etwa 35 Elemente, um es

Global myWedge() As Wedge 
ReDim myWedge(99, 4) 

I das Array besiedelt haben, aber jetzt ausgegeben werden soll dem Inhalt des Arrays zu einem Arbeitsblatt. Zuvor in anderen kleineren Arrays habe ich jedes Element wie folgt ausgegeben.

'Output IOTT Number and Duration 
     For a = 1 To 4 
      If YGBL(x, a).IOTT > 0 Then sOutput.Cells(x + 4, IOTTCol) = YGBL(x, a).IOTT 
       IOTTCol = IOTTCol + 2 
      If YGBL(x, a).IOTTDUR > 0 Then sOutput.Cells(x + 4, IOTTDUR) = YGBL(x, a).IOTTDUR 
       IOTTDUR = IOTTDUR + 2 
     Next a 

Aber die Anzahl der Elemente gegeben Ich möchte nur eine Schleife durch die Elemente und diese in ein Blatt setzen, ohne die oben für die einzelnen Elemente zu tun haben.

ist das möglich

Dank

Antwort

1

eine Funktion verwenden ....

Function PropertyOf(wedgeType As Wedge, index As Integer) As Long 
    Dim w As Long 

    With wedgeType 
    Select Case index 
     Case 1 
     w = .C407 
     Case 2 
     w = .C417 
     Case 3 
     w = .C507 
     .... 
    End Select 
    End With 
    PropertyOf = w 
End Function 

Dann

Dim w As Wedge 
For a = 1 To 4 
    w = myWedge(x, a) 
    For c = 1 To 35 
    p = PropertyOf(w, c) 
    If p > 0 Then 
     ' Do your stuff here 
    End If 
    Next c 
Next i 
+0

Huy, danke für die Lösung, nur mit dem w kämpfen = myWedge (x, a) was ist "X" – Fabby

+0

Ich kopiere einfach von Ihrem Beispiel YGBL (x, a) .... so in diesem Fall können Sie ma ke eine weitere äußere Schleife für x = 1 bis 99 .... –

Verwandte Themen