2016-07-13 8 views
0

参照ファイルからデータのコピーを作成し、そのコピーを一意にしてから、新しいシートの列見出しのループにその一意のテキストを配置します。誰もがなぜ「wsDBで」行内の「範囲外の添え字」エラーを取得しているのか分かりませんか?それは多次元になっ arrValues = .Range("I2", .Range("I" & .Rows.Count).End(xlUp))添え字が範囲外である配列内でエラーが発生する

Sub uniqueyes() 

Dim wsRef As Worksheet 
Dim wsDB As Worksheet 

Set wsRef = Worksheets("reference1") 
Set wsDB = Worksheets("Sheet1") 

With wsRef 
    .Range("F1:F60").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("I1"), unique:=True 

    Dim arrValues As Variant 
    arrValues = .Range("I2", .Range("I" & .Rows.Count).End(xlUp)) 

End With 

For i = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row 

    If Cells(i, 4) = "Title" Then 

     For j = 1 To (UBound(arrValues)) Step 1 


     With wsDB 

      .Range(.Cells(i, j * 4 + 2), .Cells(i, j * 4 + 4)).Value = arrValues(j) 



      End With 

     Next j 

    End If 

Next i 

End Sub 

答えて

4

あなたは、配列内の値をロードし、これを気に入っています。 (行と列)

この行では、1つの次元(行)をjとし、他の次元(列)を欠いているだけです。したがって、エラー。

.Range(.Cells(i, j * 4 + 2), .Cells(i, j * 4 + 4)).Value = arrValues(j)

+0

大丈夫、私は列を追加しようとすると、それは私にちょうど私はそれはあなたに感謝しました冗談 – beks123

+0

他のエラーが発生します!!! – beks123

+0

乾杯!!!!!!!!!!!! – cyboashu

関連する問題