evgenni63

Зарегистрирован с 18.05.2020
Комментарии
18 мая 2020

life is pain without basic ! Option Base 1 Sub snake() Dim asd As Variant Dim NAR As Variant Range("A1").CurrentRegion.Delete

n = 10 ReDim asd(n ^ 2) ReDim NAR(n, n)

For i = 1 To n ^ 2 asd(i) = i Next i

a = 1 c = 1 x = 1 y = 1 flag = 1

For i = 1 To n ^ 2

 If a = n Then
    a = 1
    If flag = 1 Then
        flag = 2
        ElseIf flag = 2 Then
        flag = 3
        ElseIf flag = 3 Then
        flag = 4
        ElseIf flag = 4 Then
        flag = 1
        x = x + 1
        y = y + 1
        n = n - 2
    End If

End If

If flag = 1 Then
    NAR(x, y) = asd(c)
    c = c + 1
    a = a + 1
    y = y + 1
End If

If flag = 2 Then
    NAR(x, y) = asd(c)
    c = c + 1
    a = a + 1
    x = x + 1
End If

If flag = 3 Then
    NAR(x, y) = asd(c)
    c = c + 1
    a = a + 1
    y = y - 1
End If

If flag = 4 Then
    NAR(x, y) = asd(c)
    c = c + 1
    a = a + 1
    x = x - 1
End If

Next i

Range("A1").Resize(UBound(NAR, 1), UBound(NAR, 2)).Value = NAR

End Sub

Ответить