2016-06-24 9 views
0
Dim j as integer 
Dim b as integer 
Dim arrayMaterial as string 
Dim array1() 
For j=1 to numrows-1 
    For i = 1 To 3 
     ReDim Preserve array1(0 To 3, 0 To numrows) 
     array1(i, j) = Cells(j + 1, i + 6) 
    Next 
Next 
    For j = 1 To numrows - 1 
     For b = 1 To 3 
      arrayMaterial = array1(b, j) 
     Next 
    MsgBox Join(arrayMaterial, " ") 

Ich möchte in der Lage sein, die Array-Werte in einer kombinierten Zeichenfolge zu speichern. Ich bekomme immer eine Fehlermeldung. Irgendwelche Vorschläge?VBA String-Array

+1

Nicht ganz sicher, was Sie erreichen möchten. Das mag sein? 'arrayMaterial = arrayMaterial &" "& array1 (b, j)'. Und danach 'MsgBox arrayMaterial'. – CMArg

+0

Es könnte hilfreich sein, wenn Sie die Fehlermeldung gepostet und Ihr gewünschtes Ergebnis erklärt haben. – Shaggy

+0

@aggiyman Beantwortet Vityata oder mein Kommentar hilft Ihr Problem zu lösen? Höflichkeit wird keinen Schaden anrichten ... – CMArg

Antwort

0

Keine Ahnung, was Sie versuchen zu tun. Sie verpassen einen nächsten und die Variablen sind nicht definiert. Und Arraymaterial ist eine Zeichenfolge, kein Array. Wenn Sie jedoch ein zweidimensionales Array in die msgbox einfügen möchten, ist dies eine gute Möglichkeit, dies mit Ihrem Code zu tun:

Option Explicit 
Sub TestMe() 
    Dim j As Long 
    Dim b As Long 
    Dim arrayMaterial As String 
    Dim numrows As Long: numrows = 5 
    Dim i As Long 

    Dim array1() As Long 

    For j = 1 To numrows - 1 
     For i = 1 To 3 
      ReDim Preserve array1(0 To 3, 0 To numrows) 
      array1(i, j) = Cells(j + 1, i + 6) 

     Next i 
    Next j 
    MsgBox WriteArrayToImmediateWindow(array1) 
End Sub 

'taken from SO and modified a bit 
Function WriteArrayToImmediateWindow(arrSubA As Variant) As String 

    Dim rowString As String 
    Dim iSubA As Long 
    Dim jSubA As Long 

    rowString = "" 

    For iSubA = 1 To UBound(arrSubA, 1) 
     rowString = arrSubA(iSubA, 1) 
     For jSubA = 2 To UBound(arrSubA, 2) 
      rowString = rowString & "," & arrSubA(iSubA, jSubA) 
     Next jSubA 
     WriteArrayToImmediateWindow = WriteArrayToImmediateWindow & vbCrLf & rowString 
    Next iSubA 

End Function