2017-09-16 5 views
1

後で処理するために入力する列に文字列があります。配列を表示して配列を表示し、必要な変更を理解できるようにしたいと思います。以下のサンプルでは、​​14個のセルすべてに値があります。私はこのコードを実行するときしかし、私は、VBA、「ファイル名を指定して実行時エラーを取得 『9』:。?インデックスが有効範囲にありません」というエラーVBA下付き文字で配列を印刷する

Sub Clean() 
     Dim siteArrayOriginal() 
     siteArrayOriginal() = Worksheets("Sheet1").Range("A1:A14").Value 
     viewArray (siteArrayOriginal) 
    End Sub 

Public Function viewArray(myArray) 
    Dim txt As String 
    Dim i As Long 

    For i = LBound(myArray) To UBound(myArray) 
    txt = txt & myArray(i) & vbCrLf 
    Next i 

    MsgBox txt 
End Function 

なぜ

+0

関数内の配列をREDIM – Lowpar

答えて

2

配列は、1つの列に渡しているものの。

myArray(i, 1)

:それを参照するときに、まだ2次元配列である

だから、二次元を含める必要が

ので:

Sub Clean() 
    Dim siteArrayOriginal() 
    siteArrayOriginal() = Worksheets("Sheet1").Range("A1:A14").Value 
    viewArray (siteArrayOriginal) 
End Sub 

Public Function viewArray(myArray) 
    Dim txt As String 
    Dim i As Long 

    For i = LBound(myArray) To UBound(myArray) 
    txt = txt & myArray(i, 1) & vbCrLf 
    Next i 

    MsgBox txt 
End Function 

enter image description here

関連する問題