Array values with UBound

M

mareharbor

I am having trouble putting my array values into another sheet. I know
that the correct values are in there but i can't get them to output. I
have two variations. One uses UBound and the other just uses my
counter from building the array.

Public Sub DIFFREC2()
Windows("factor.xls").Activate
Dim MRange As Range
Set MRange = Range(Range("F1"), Range("F1").End(xlDown))
Dim cell As Variant
Dim rw As Integer
Dim x As Integer
Dim y As Integer
Dim arrTicker() As String
rw = 0
For Each cell In MRange
If cell.Value = "PAYD" Then
ReDim Preserve arrTicker(4, rw)
arrTicker(0, rw) = cell.Offset(0, -5).Value
arrTicker(1, rw) = cell.Offset(0, -4).Value
arrTicker(2, rw) = cell.Offset(0, -3).Value
arrTicker(3, rw) = cell.Offset(0, -2).Value
rw = rw + 1
End If
Next cell
Windows("TEST.xls").Activate
Sheets("CBOIPRIN").Select
x = 0
For y = 0 To rw - 1
' or y = 0 To UBound(arrTicker) either doesn't work

Cells(x, 1).Value = arrTicker(0, y)
Cells(x, 2).Value = arrTicker(1, y)
Cells(x, 3).Value = arrTicker(2, y)
Cells(x, 4).Value = arrTicker(3, y)
x = x + 1
Next

End Sub
 
J

JE McGimpsey

Cells(x, 1) will error when x = 0 since Cells() is 1-based.

If I understand what you're doing, you could perhaps use:

Public Sub DIFFREC2()
Dim rDest As Range
Dim rCell As Range

Set rDest = Workbooks("TEST.xls").Sheets("CBOIPRIN").Cells(1, 1)
With Workbooks("factor.xls").Sheets(1)
For Each rCell In .Range(.Range("F1"), _
.Range("F1").End(xlDown))
With rCell
If .Text = "PAYD" Then
rDest.Resize(1, 4).Value = _
.Offset(0, -5).Resize(1, 4).Value
Set rDest = rDest.Offset(1, 0)
End If
End With
Next rCell
End With
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top