2016-06-24 14 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, " ") 

配列値を結合した文字列に格納できるようにします。私はエラーメッセージを受け取り続ける。助言がありますか?VBA文字列配列

+1

ないかなりSHURE:あなたがメッセージボックスに二次元配列を入れたい場合はとにかく、これはあなたのコードでそれを行うには良い方法です。これはおそらく? 'arrayMaterial = arrayMaterial&" "&array1(b、j)'です。そしてその 'MsgBox arrayMaterial'の後に。 – CMArg

+0

エラーメッセージを投稿し、希望の結果を説明した場合に役立つかもしれません。 – Shaggy

+0

@aggieman Vityataはあなたの問題を解決するのに役立ちますか?礼儀正しくても害はありません... – CMArg

答えて

0

何をしようとしているのか分かりません。あなたは次の変数を見つけられず、変数は定義されていません。 arraymaterialは配列ではなく文字列です。あなたが達成したいものの

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