Invalid Next Control Variable Reference
the "j" loop is inside the "i" loop, therefore you need to have the "next j"
statement before the "next i" statement
Also, you have two "Exit For" statements. I presume you are trying to exit
BOTH loops (i and j) at that point. It won't happen. The Exit For will only
exit the inner loop, then you will need to have another loop exit test
between the "next j" and "next i" statements.
"teresa" wrote:
I get an 'Invalid Next Control Variable Reference', also is there
a ore efficient way of doing this rather than re-defining:
fin,fin2,vArr,vArr2 etc.etc.
Many Thanks
Public Sub coiD()
Dim fin As Workbook
Dim fin2 As Workbook
Dim vArr As Variant
Dim vArr2 As Variant
Dim rCell As Range
Dim rDest As Range
Dim sDest As Range
Dim i As Long
Dim j As Long
Set fin = Application.Workbooks.Open( _
"C:\My Documents\Business Plans\TeamC.xls")
Set fin2 = Application.Workbooks.Open( _
"C:\My Documents\Business Plans\TeamM.xls")
vArr = Array("Hudson", "HSB", "C&W")
vArr2 = Array("ACCEN", "AME", "SHEL")
For Each rCell In Range("D1:D" & _
Range("D" & Rows.Count).End(xlUp).Row)
With rCell
For i = LBound(vArr) To UBound(vArr)
For j = LBound(vArr2) To UBound(vArr2)
If .Value = vArr(i) Then
Set rDest = fin.Worksheets(vArr(i)).Cells( _
25, 1).End(xlUp).Offset(1, 0)
.EntireRow.Copy
Destination:=rDest
If .Value = vArr2(j) Then
Set sDest = fin2.Worksheets(vArr2(j)).Cells( _
25, 1).End(xlUp).Offset(1, 0)
.EntireRow.Copy Destination:=sDest
Exit For
Exit For
End If
End If
Next i
Next j
End With
Next rCell
End Sub
|