Definer range til array
Jeg skal lave 31 mindre tabeller fordelt på samme ark. Der skal kopieres data fra de enkelte tabeller til et andet ark, - ud fra enkelte kriterier. Jeg bruger en kode der sætter data ind i et array.Det kan jeg godt få til at fungere, - når array har udgangspunkt i cellen A1.
Men tabellerne ligger spredt på arket og jeg vil gerne definere hvilket områder de ligger i.
På den måde skal jeg kun lave koden til ét array og kopiere den (30 gange). Og derefter skal jeg kun ændre range for de enkelte array.
Eksempel: Hvis range er defineret til fx P40:S101, så har det pågældende array cellen P40 som "udgangs-celle".
Jeg har prøvet at definere et range for hver af de enkelt arrays ved at bruge "Set Range". Der kommer ikke debug, når jeg sætter det ind i koden, men det har ikke nogen effekt på det array der ligger i området. Selvom jeg fx sætter range til P40:S101, fungerer array stadig ud fra cellen A1.
Koden:
Public Sub TestArrayRange()
Dim Tabel(1 To 61, 1 To 4) As Variant
Dim rRange As Range
Dim I As Integer, j As Integer, k As Integer
Set rRange = Sheets("Ark2").Range("P40:S101")
Application.ScreenUpdating = False
k = 1
For I = 8 To 61
ThisWorkbook.Sheets("Ark2").Activate
'Jeg har prøvet med nedenståen linje, men det fungerer ikke -
'If rRange.Cells(I, 1).Value > 0 And Cells(I, 2).Value = "" Then
'Med nedenstående linje fungerer det -
If Sheets("Ark2").Cells(I, 1).Value > 0 And Cells(I, 2).Value = "" Then
For j = 1 To 2
Tabel(k, j) = Cells(I, j).Value
Next j
k = k + 1
End If
Next I
Sheets("Ark3").Activate
Range("M10").Select
For k = 1 To 61
For j = 1 To 2
ActiveCell.Cells(k, j).Value = Tabel(k, j)
Next j
Next k
Application.ScreenUpdating = True
End Sub
Er der nogen der har et bud på hvordan man definerer et range til et array ?
Laugesen
