Witam

mam problem z makrem, makro wczytuje 2 arkusze do tablic ( do tablicy F zawartość arkusz Faktury, a do Z arkusz Zakupy)

przy uruchomieniu wyskakuje mi komunikat :

"Run-time error '9':
Subscript out of range"

zaznacza mi linie :

If F(i, 11) <> "KMP" And F(i, 11) <> "MAN" And _
F(q, 11) <> "KMP" And F(q, 11) <> "MAN" And _
Z(x, 18) <> "KMP" And Z(x, 18) <> "MAN" Then

jakiś pomysł ???

Sub Rozlicz()
Application.ScreenUpdating = False
Dim i, j, x, y, q As Integer
Dim LastRowZaplaty, LastRowFaktury As Long

Dim Suma As Long

Sheets("Faktury").Select
With Faktury
LastRowFaktury = .Cells(.Rows.Count, "A").End(xlUp).Row
End With

Sheets("Zaplaty").Select
With Zaplaty
LastRowZaplaty = .Cells(.Rows.Count, "B").End(xlUp).Row
End With

Dim F() As Variant
F = Faktury.Range("A1:K" & LastRowFaktury).Value

Dim Z() As Variant
Z = Zaplaty.Range("A1:R" & LastRowZaplaty).Value

For i = 1 To LastRowFaktury
For j = 1 To 11
If F(i, 11) = "ROZ" Or F(i, 11) = "NER" Or F(i, 11) = "ROZ1" Or F(i, 11) = "NER1" Or F(i, 11) = "" Then
F(i, 11) = (" ")
End If
Next j
Next i

For x = 1 To LastRowZaplaty
For y = 1 To 18
If Z(x, 18) = "ROZ" Or Z(x, 18) = "NER" Or Z(x, 18) = "ROZ1" Or Z(x, 18) = "NER1" Or Z(x, 18) = "" Then
Z(x, 18) = (" ")
End If
Next y
Next x

For i = 2 To LastRowFaktury
For x = 2 To LastRowZaplaty
q = i + 1
If F(i, 11) <> "KMP" And F(i, 11) <> "MAN" And _
F(q, 11) <> "KMP" And F(q, 11) <> "MAN" And _
Z(x, 18) <> "KMP" And Z(x, 18) <> "MAN" Then
If ((F(i, 4) = F(i + 1, 4)) And (F(i, 4) = Z(x, 4))) Or ((F(i, 4) = F(i + 1, 4)) And (F(i, 4) = Z(x, 3))) Then
Suma = F(i, 5) - Z(x, 8) + F(i + 1, 5)
If Suma <= 10 Then
F(i, 11) = "ROZ"
F(i + 1, 11) = "ROZ"
Z(x, 18) = "ROZ"
If F(i, 5) + F(i + 1, 5) - Z(x, 8) > 0 Then
Z(x, 17) = F(i, 5) + F(i + 1, 5) - Z(x, 8)
End If
End If
End If
End If
Next x
Next i

Worksheets("xxx").Range("A1:K" & LastRowFaktury) = F
Worksheets("yyy").Range("A1:R" & LastRowZaplaty) = Z

Application.ScreenUpdating = True

End Sub